/ SeriousOJ /

Record Detail

Time Exceeded


  
# Status Time Cost Memory Cost
#1 Accepted 12ms 2.387 MiB
#2 Accepted 24ms 2.445 MiB
#3 Accepted 20ms 2.387 MiB
#4 Accepted 14ms 2.434 MiB
#5 Accepted 11ms 2.43 MiB
#6 Accepted 12ms 2.387 MiB
#7 Accepted 20ms 2.594 MiB
#8 Accepted 33ms 2.594 MiB
#9 Accepted 22ms 2.434 MiB
#10 Accepted 13ms 2.602 MiB
#11 Accepted 8ms 2.527 MiB
#12 Accepted 19ms 2.504 MiB
#13 Accepted 12ms 2.387 MiB
#14 Accepted 17ms 2.434 MiB
#15 Accepted 25ms 2.539 MiB
#16 Accepted 18ms 2.387 MiB
#17 Accepted 13ms 2.543 MiB
#18 Accepted 20ms 2.387 MiB
#19 Accepted 25ms 2.387 MiB
#20 Accepted 18ms 2.59 MiB
#21 Accepted 16ms 2.418 MiB
#22 Accepted 16ms 2.434 MiB
#23 Accepted 26ms 2.543 MiB
#24 Accepted 19ms 2.387 MiB
#25 Accepted 17ms 2.387 MiB
#26 Accepted 12ms 2.387 MiB
#27 Accepted 11ms 2.559 MiB
#28 Accepted 20ms 2.555 MiB
#29 Accepted 16ms 2.387 MiB
#30 Accepted 16ms 2.391 MiB
#31 Accepted 24ms 2.547 MiB
#32 Accepted 22ms 2.543 MiB
#33 Accepted 13ms 2.387 MiB
#34 Accepted 25ms 2.359 MiB
#35 Accepted 22ms 2.387 MiB
#36 Accepted 29ms 2.465 MiB
#37 Accepted 9ms 2.387 MiB
#38 Accepted 12ms 2.418 MiB
#39 Accepted 44ms 2.387 MiB
#40 Accepted 19ms 2.387 MiB
#41 Accepted 23ms 2.414 MiB
#42 Accepted 10ms 2.434 MiB
#43 Accepted 7ms 2.387 MiB
#44 Accepted 10ms 2.434 MiB
#45 Accepted 40ms 2.594 MiB
#46 Accepted 20ms 2.387 MiB
#47 Accepted 22ms 2.387 MiB
#48 Accepted 14ms 2.598 MiB
#49 Accepted 30ms 2.43 MiB
#50 Accepted 26ms 2.387 MiB
#51 Accepted 16ms 2.391 MiB
#52 Accepted 17ms 2.387 MiB
#53 Accepted 25ms 2.59 MiB
#54 Accepted 22ms 2.387 MiB
#55 Accepted 40ms 2.387 MiB
#56 Accepted 20ms 2.387 MiB
#57 Accepted 11ms 2.387 MiB
#58 Accepted 16ms 2.543 MiB
#59 Accepted 27ms 2.387 MiB
#60 Accepted 20ms 2.527 MiB
#61 Accepted 17ms 2.387 MiB
#62 Accepted 8ms 2.551 MiB
#63 Accepted 12ms 2.539 MiB
#64 Accepted 13ms 2.43 MiB
#65 Accepted 23ms 2.598 MiB
#66 Accepted 36ms 2.551 MiB
#67 Accepted 12ms 2.598 MiB
#68 Accepted 32ms 2.469 MiB
#69 Accepted 16ms 2.605 MiB
#70 Accepted 11ms 2.387 MiB
#71 Accepted 22ms 2.387 MiB
#72 Accepted 10ms 2.535 MiB
#73 Accepted 11ms 2.387 MiB
#74 Accepted 28ms 2.582 MiB
#75 Accepted 14ms 2.57 MiB
#76 Accepted 29ms 2.387 MiB
#77 Accepted 20ms 2.387 MiB
#78 Accepted 22ms 2.387 MiB
#79 Accepted 13ms 2.434 MiB
#80 Accepted 10ms 2.613 MiB
#81 Accepted 24ms 2.387 MiB
#82 Time Exceeded ≥3099ms ≥3.594 MiB
#83 Time Exceeded ≥3100ms ≥3.633 MiB

Code

/*
 *   Copyright (c) 2025 Emon Thakur
 *   All rights reserved.
 */
#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll n,x,a[200005];

bool notprime[1000006];
vector<ll>allprime;
void seive()
{
    for(int i=2;i<=1000;i++)
    {
        if(notprime[i]) continue;
        for(int j=i+i;j<=1000000;j+=i) notprime[j]=true;
    }
    for(int i=2;i<=1000000;i++) {if(!notprime[i]) allprime.push_back(i);}
}

ll cost(int l,int r,ll k)
{
    vector<ll> pd;
    ll kk = k;
    for(auto p:allprime)
    {
        if(kk%p==0) pd.push_back(p);
        while(kk%p==0) kk/=p;
    }if(kk>1) pd.push_back(kk);

    ll ans =0;
    for(int i=l;i<=r;i++)
    {
        ll cnt = 1e9;
        for(auto gcd:pd)
        {
            if(a[i]%gcd==0) {cnt=0; break;}
            cnt = min(cnt ,((a[i]+gcd)/gcd)*gcd - a[i]);
        }
        ans += cnt;
    }
    return ans;
}

ll ans(int start,int end,ll k)
{
    if(start==end)
    {
        if(__gcd(a[start],k)>1) return 0;
        else return cost(start,end,k);
    }
    int mid = (start+end-1)/2;
    return min(cost(start,mid,k)+ans(mid+1,end,k+1) , cost(mid+1,end,k)+ans(start,mid,k+1));
}

int main()
{
    seive();
    cin >> n >> x;
    for(int i=1;i<=n;i++) cin >> a[i];
    cout<<ans(1,n,x)<<'\n';
}

Information

Submit By
Type
Submission
Problem
P1168 F. x ordinary array
Language
C++17 (G++ 13.2.0)
Submit At
2025-03-03 16:27:44
Judged At
2025-03-03 16:27:44
Judged By
Score
81
Total Time
≥3100ms
Peak Memory
≥3.633 MiB