Cod sursa(job #110537)

Utilizator gr33nhumbVoicu Gabriel gr33nhumb Data 26 noiembrie 2007 21:58:29
Problema Pairs Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.31 kb
#include<fstream.h>

long v[100001],nr;

int prim(long x, long y){
long i;
if(x<y){
if(x%2==0 && y%2==0) return 0;
for(i = 2; i <= x/2; i++)
   if(x%i == 0 && y%i==0) return 0;
return 1;
}
else{ if(x%2==0 && y&2==0) return 0;
   for(i = 2; i <= y/2; i++)
   if(x%i == 0 && y%i==0) return 0;
return 1;
    }
}


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(prim(v[i],v[j])==1) ++ct;
   }
 }
g<<ct<<"\n";
f.close();
g.close();
return 0;
}