Submission #1171689

#TimeUsernameProblemLanguageResultExecution timeMemory
1171689bozocodeSirni (COCI17_sirni)C++20
0 / 140
94 ms3144 KiB
#include <bits/stdc++.h>
using namespace std;
using i64 = long long;

const int MAXV = 1e7;

vector<bool> appear(MAXV + 1);
vector<bool> sieve(MAXV + 1);

int main() {
    int N; cin >> N;
    vector<int> candy(N);
    int last = MAXV;
    for (int i = 0; i < N; i++) {
        cin >> candy[i];
        appear[candy[i]] = true;
        last = min(last, candy[i]);
    }
    
    i64 ans = 0;
    for (int i = 1; i <= MAXV; i++) {
        if (sieve[i]) { last = i; continue; }
        if (!appear[i]) { continue; }
        bool f = false;
        for (int j = 2 * i; j <= MAXV; j += i) {
            if (appear[j] && sieve[j]) { f = true; }
            sieve[j] = true;
        }
        ans += f ? 0 : i - last;
    }
    cout << ans << endl;
}
#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...
#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...