Cod sursa(job #1415900)
Utilizator | Catruna 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;
}