Submission #1358237

#TimeUsernameProblemLanguageResultExecution timeMemory
1358237NewtonabcGingerbread (BOI25_gcd)C++20
100 / 100
217 ms86508 KiB
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N=1e6+10;
ll a[N],n;
bool ok;
void f(int i,ll lt,ll ac){
    if(ok) return;
    if(i==n){
        if(ac==-1) ac=a[i]+lt;
        else ac=__gcd(ac,a[i]+lt);
        if(ac==1) ok=true;
        return;
    }
    for(int j=0;j<=lt;j++){
        a[i]+=j;
        ll nxt;
        if(ac==-1) nxt=a[i];
        else nxt=__gcd(ac,a[i]);
        if(nxt==1){
            ok=1;
            return;
        }
        f(i+1,lt-j,nxt);
        if(ok) return;
        a[i]-=j;
    }
}
int main(){
    cin>>n;
    for(int i=1;i<=n;i++) cin>>a[i];
    for(ll i=0;i<=1e7;i++){
        f(1,i,-1);
        if(ok){
            cout<<i;
            return 0;
        }
    }
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...