Cod sursa(job #2519797)

Utilizator IulianOleniucIulian Oleniuc IulianOleniuc Data 8 ianuarie 2020 14:04:38
Problema Pairs Scor 0
Compilator cpp-64 Status done
Runda RoadToIOI #6 Marime 0.69 kb
#include <bits/stdc++.h>
using namespace std;

ifstream fin("pairs.in");
ofstream fout("pairs.out");

int main() {
    int n; fin >> n;
    vector<bool> mat(1e6 + 1);

    vector<int> pr(n);
    for (int i = 0; i < n; i++) {
        fin >> pr[i];
        mat[pr[i]] = true;
    }
    sort(pr.begin(), pr.end());

    vector<int> dp(1e6 + 1, n);
    for (int i = 0; i < n; i++)
        dp[pr[i]] = i;

    for (int i = 2; i <= 1e6; i++)
        if (mat[i])
            for (int j = 2 * i; j <= 1e6; j += i)
                dp[j] -= dp[i];

    int64_t sol = 0;
    for (int i = 1; i <= 1e6; i++)
        if (mat[i])
            sol += dp[i];
    fout << sol / 2 << '\n';

    fout.close();
    return 0;
}