/ SeriousOJ /

Record Detail

Time Exceeded


  
# Status Time Cost Memory Cost
#1 Accepted 1ms 540.0 KiB
#2 Accepted 2ms 332.0 KiB
#3 Accepted 45ms 540.0 KiB
#4 Time Exceeded ≥2011ms ≥548.0 KiB
#5 Time Exceeded ≥2077ms ≥552.0 KiB
#6 Time Exceeded ≥2094ms ≥540.0 KiB
#7 Time Exceeded ≥2091ms ≥1.062 MiB
#8 Time Exceeded ≥2093ms ≥1.27 MiB
#9 Time Exceeded ≥2082ms ≥1.102 MiB
#10 Time Exceeded ≥2028ms ≥1.156 MiB
#11 Time Exceeded ≥2079ms ≥1.16 MiB
#12 Time Exceeded ≥2089ms ≥1.16 MiB
#13 Time Exceeded ≥2090ms ≥1.148 MiB
#14 Time Exceeded ≥2094ms ≥1.973 MiB
#15 Time Exceeded ≥2088ms ≥616.0 KiB
#16 Time Exceeded ≥2000ms ≥696.0 KiB
#17 Time Exceeded ≥2098ms ≥692.0 KiB
#18 Time Exceeded ≥2095ms ≥788.0 KiB
#19 Time Exceeded ≥2092ms ≥612.0 KiB
#20 Time Exceeded ≥2094ms ≥540.0 KiB

Code

#include<bits/stdc++.h>
#include <numeric>
#include <limits>
using namespace std;

int main() {
    int t;
    cin>>t;
    while(t--){
        int n,k; cin>>n>>k; 
        vector<int>a(n);
        for(int i=0; i<n; i++){
            cin>>a[i]; 
        }
        vector<int>m(n, numeric_limits<int>::max());
        m[0]=0;

        for(int i=0; i<n; i++){
            if(i+1<n){
                m[i+1]=min(m[i+1], m[i]+k);
            }
            for(int j=i+1; j<n; j++) {
                int cost=a[i]/gcd(a[i],a[j]);
                m[j]=min(m[j], m[i]+cost);
            }
        }
        cout<<m[n-1]<<endl;
    }
}

Information

Submit By
Type
Submission
Problem
P1099 Which way to go
Contest
Brain Booster #6
Language
C++17 (G++ 13.2.0)
Submit At
2024-10-03 16:17:02
Judged At
2024-10-03 16:17:02
Judged By
Score
15
Total Time
≥2098ms
Peak Memory
≥1.973 MiB