/ 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 ≥532.0 KiB
#5 Time Exceeded ≥2100ms ≥580.0 KiB
#6 Time Exceeded ≥2100ms ≥2.273 MiB
#7 Time Exceeded ≥2099ms ≥9.559 MiB
#8 Time Exceeded ≥2101ms ≥9.52 MiB
#9 Time Exceeded ≥2101ms ≥9.559 MiB
#10 Time Exceeded ≥2001ms ≥9.52 MiB
#11 Time Exceeded ≥2001ms ≥9.52 MiB
#12 Time Exceeded ≥2101ms ≥9.52 MiB
#13 Time Exceeded ≥2100ms ≥9.566 MiB
#14 Time Exceeded ≥2100ms ≥18.77 MiB
#15 Time Exceeded ≥2099ms ≥2.27 MiB
#16 Time Exceeded ≥2096ms ≥2.312 MiB
#17 Time Exceeded ≥2001ms ≥2.27 MiB
#18 Time Exceeded ≥2001ms ≥2.27 MiB
#19 Time Exceeded ≥2100ms ≥2.27 MiB
#20 Time Exceeded ≥2000ms ≥2.27 MiB

Code

#include<bits/stdc++.h>
using namespace std;
#define ll long long int 
ll dp[200004];
ll ar[200004];
ll n,k;
ll ok(ll i)
{
    if(i>=n-1)
        return 0;
 
    if(dp[i]!=-1) return dp[i];
       ll op=INT_MAX;
    for(int j=i+1;j<n;j++)
    {
        ll u=(j-i)*k;
        op=min({op,u+ok(j),(ar[i]/__gcd(ar[i],ar[j]))+ok(j)});
        
    }
    return dp[i]=op;
}
int main()
{
    ll tc;
    cin>>tc;
    while(tc--)
    {
       cin>>n>>k;
        
        for(int i=0;i<=n;i++){
            dp[i]=-1;
            ar[i]=0;
        }
        for(int i=0;i<n;i++)
            cin>>ar[i];
        ll op=ok(0);
        cout<<op<<endl;
        
        

    }
}

Information

Submit By
Type
Submission
Problem
P1099 Which way to go
Language
C++17 (G++ 13.2.0)
Submit At
2024-10-04 18:11:55
Judged At
2024-10-04 18:11:55
Judged By
Score
15
Total Time
≥2101ms
Peak Memory
≥18.77 MiB