Submission #990112

#TimeUsernameProblemLanguageResultExecution timeMemory
990112SkaSirni (COCI17_sirni)C++14
42 / 140
8 ms1628 KiB
#include <bits/stdc++.h>
using namespace std;

const int N = 1e5 + 5;

int n;
int a[N];

namespace sub1 {
    int d[N];
    bool used[N];

    void solve() {
        fill(d + 2, d + n + 1, 2e9);
        d[1] = 0;
        long long res = 0;
        for (int i = 1; i <= n; ++i) {
            int k = -1;
            for (int j = 1; j <= n; ++j) {
                if (!used[j] && (k == -1 || d[j] < d[k])) {
                    k = j;
                }
            }
            used[k] = true;
            res += d[k];
            for (int j = 1; j <= n; ++j) {
                d[j] = min(d[j], min(a[k] % a[j], a[j] % a[k]));
            }
        }
        cout << res << '\n';
    }
}

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    cin >> n;
    for (int i = 1; i <= n; ++i) {
        cin >> a[i];
    }
    if (n <= 1000) {
        sub1::solve();
    }
}
#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...