/ SeriousOJ /

Record Detail

Time Exceeded


  
# Status Time Cost Memory Cost
#1 Accepted 1ms 532.0 KiB
#2 Accepted 3ms 532.0 KiB
#3 Accepted 89ms 532.0 KiB
#4 Time Exceeded ≥2099ms ≥320.0 KiB
#5 Time Exceeded ≥2097ms ≥532.0 KiB
#6 Time Exceeded ≥2100ms ≥832.0 KiB
#7 Time Exceeded ≥2100ms ≥1.812 MiB
#8 Time Exceeded ≥2001ms ≥2.051 MiB
#9 Time Exceeded ≥2001ms ≥2.02 MiB
#10 Time Exceeded ≥2100ms ≥2.02 MiB
#11 Time Exceeded ≥2100ms ≥2.031 MiB
#12 Time Exceeded ≥2099ms ≥2.047 MiB
#13 Time Exceeded ≥2099ms ≥2.02 MiB
#14 Time Exceeded ≥2101ms ≥3.52 MiB
#15 Time Exceeded ≥2099ms ≥836.0 KiB
#16 Time Exceeded ≥2100ms ≥788.0 KiB
#17 Time Exceeded ≥2098ms ≥788.0 KiB
#18 Time Exceeded ≥2000ms ≥700.0 KiB
#19 Time Exceeded ≥2100ms ≥788.0 KiB
#20 Time Exceeded ≥2100ms ≥704.0 KiB

Code

#include <bits/stdc++.h>
using namespace std;
using ll=long long;

ll gcd_(ll a, ll b) {
    return b==0? a : gcd_(b, a%b);
}

void solve() {
    ll n,k;
    cin>>n>>k;
    vector<ll> arr(n);

    for (ll i=0; i<n; i++) {
        cin>>arr[i];
    }
    vector<ll> dp(n, LLONG_MAX);

    dp[n-1]=0;

    for (ll i =n-2; i>=0; i--) {
        dp[i] = min(dp[i], k + dp[i + 1]);

        for (ll j = i + 1; j < n; j++) {
            ll cost = arr[i] / gcd_(arr[i], arr[j]);
            dp[i] = min(dp[i], cost + dp[j]);
        }
    }
    cout << dp[0] << endl;
}

int main(){
    int t;
    cin>>t;
    while(t--){
        solve();
    }
return 0;
}

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 17:12:26
Judged At
2024-10-03 17:12:26
Judged By
Score
15
Total Time
≥2101ms
Peak Memory
≥3.52 MiB