Cod sursa(job #1946303)

Utilizator tamionvTamio Vesa Nakajima tamionv Data 30 martie 2017 05:54:55
Problema Pairs Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#include <bits/stdc++.h>
using namespace std;

using ll = long long;

constexpr int maxn = 1e6 + 100;

pair<ll, ll> d[maxn] = {}, *ep = d + maxn;
ifstream f("pairs.in");
ofstream g("pairs.out");

int main(){
    int n;
    f >> n;
    for(int i = 0, x; i < n; ++i) f >> x, d[x].first = 1;

    ll rez = (ll)n * (n-1) / 2ll;

    for(int i = maxn-1; i > 1; --i){
        ll nr1 = 0, nr2 = 0;
        for(pair<ll, ll>* j = d+i; j < ep; j += i) nr1 += j->first, nr2 += j->second;
        rez -= (d[i].second = nr1 * (nr1-1) / 2 - nr2); }

    g << rez << endl;
    return 0; }