Cod sursa(job #2731133)

Utilizator CiboAndreiAndrei Cibo CiboAndrei Data 27 martie 2021 12:59:06
Problema Pairs Scor 20
Compilator cpp-64 Status done
Runda simulare_oni_cex Marime 0.97 kb
#include <bits/stdc++.h>

using namespace std;

//ifstream f("date.in");
//ofstream g("date.out");
ifstream f("pairs.in");
ofstream g("pairs.out");
//#define f cin
//#define g cout

const int dim = 1e5 + 2;
const int mod = 1e9 + 7;

#define pii pair <int, int>

int n, mx;
vector <int> v(dim, 0);
int a[10 * dim], w[10 * dim];

void read(){
    f >> n;
    for(int i = 0; i < n; ++i)
        f >> v[i];
}

void solve(){
    v.resize(n);

    for(auto it: v){
        ++a[it];
        ++a[1];

        for(int d = 2; d * d <= it; ++d){
            if(it % d == 0){
                ++a[d];
                if(d * d != it)
                    ++a[it / d];
            }
        }

        mx = max(mx, it);
    }

    for(int i = mx; i > 0; --i){
        w[i] = a[i] * (a[i] - 1) / 2;

        for(int j = 2; i * j <= mx; ++j)
            w[i] -= w[i * j];
    }

    g << w[1];
}

int main(){
    read();
    solve();

    return 0;
}