제출 #1344106

#제출 시각아이디문제언어결과실행 시간메모리
1344106stoneGingerbread (BOI25_gcd)C++20
62 / 100
75 ms1488 KiB
#include<bits/stdc++.h>
using namespace std;
int n;
int gcd(int a, int b) {
    if(b == 0) {
        return a;
    }
    return gcd(b,a%b);
}
const int N=3e5+5;
int a[N];
bool dude(int d, int br) {
    if(d == n) {
        int e = 0;
        for(int i = 0; i < n; i++) {
            e = gcd(e,a[i]);
        }
        if(e == 1) {
            return 1;
        }
        return 0;
    }
    for(int i = 0; i <= br; i++) {
        a[d]+=i;
        if(dude(d+1,br-i)) {
            return true;
        }
        a[d]-=i;
    }
    return false;
}

int main()
{
    cin >> n;
    for(int i = 0; i < n; i++) {
    	cin>>a[i];
    }
    int d = 0;
    for(int i = 0; i < n; i++) {
        d = gcd(d,a[i]);
    }
    if(d == 1) {
        cout << 0;
        return 0;
    }
    if(n > 15) {
        cout << 1;
        return 0;
    }
    for(int i = 1; i < 1000; i++) {
        if(dude(0,i)) {
            cout << i;
            return 0;
        }
    }
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...