Cod sursa(job #1415900)

Utilizator AndyCatrunaCatruna Andy AndyCatruna Data 6 aprilie 2015 20:26:49
Problema Pairs Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
/*Let the game begin... */
#include <fstream>
#define dim 1000001
using namespace std;
ifstream fin("pairs.in");
ofstream fout("pairs.out");
int n,i,j,m,v[dim],x,sol,nr;
bool f[dim];
int main(){
    fin>>n;
    for(i=1;i<=n;i++){
        fin>>x;
        f[x]=1;
        m=max(m,x);
    }
    for(i=1;i<=m;i++){
        nr=0;
        if(v[i]){
            for(j=i;j<=m;j+=i){
                nr+=f[j];
            }
            if(v[i]%2==0){
                sol+=nr*(nr-1)/2;
            }
            else{
                sol-=nr*(nr-1)/2;
            }
        }
        else{
            for(j=i;j<=m;j+=i){
                nr+=f[j];
                v[j]++;
            }
            sol+=nr*(nr-1)/2;
        }
    }
    sol=n*(n-1)/2-sol;
    fout<<sol<<"\n";


    return 0;
}