Pagini recente » Cod sursa (job #455520) | Cod sursa (job #2085747) | Cod sursa (job #1219643) | Cod sursa (job #210151) | Cod sursa (job #110622)
Cod sursa(job #110622)
#include<fstream.h>
#include<math.h>
long long v[100001];
long nr;
int euclid(long a, long b)
{
long c;
while (b) {
c = a % b;
a = b;
b = c;
}
c=a; return c;
}
int binar(long m, int x, int y){
int i,t;
if(m==v[x] || m==v[y]) return 0;
if(m>=v[y]){ for(i=nr;i>=y;i--) v[i+1]=v[i];
++nr;
v[y+1]=m;
return 1;}
if(m<=v[x]){ for(i=nr;i>=x;i--) v[i+1]=v[i];
++nr;
v[x]=m;
return 1;
}
while(y>x){
t=(y+x)/2;
if(v[t]==m) return 0;
if(m<v[t]) y=t-1;
else x=t+1;
if(m==v[x]) return 0;
if(m==v[y]) return 0;
}
if(m<=v[x] && m!=v[x]) { for(i=nr;i>=x;i--) v[i+1]=v[i];
++nr;
v[x]=m;
return 1;}
else { if(m==v[x] || m==v[y]) return 0;
for(i=nr;i>=y;i--) v[i+1]=v[i];
++nr;
v[y+1]=m;
return 1;}
}
int main(){
long i,j,n,ct=0,p;
ifstream f("pairs.in");
ofstream g("pairs.out");
f>>n;
for(i=1;i<=n;i++){ f>>p;
binar(p,1,nr);
}
for(i=1;i<=nr;i++){
for(j=i+1;j<=nr;j++){
if(v[i]%2==0 && v[j]%2==0) continue;
else if(euclid(v[i],v[j])==1) ++ct;
}
}
g<<ct;
f.close();
g.close();
return 0;
}