Cod sursa(job #125667)

Utilizator katakunaCazacu Alexandru katakuna Data 20 ianuarie 2008 15:49:10
Problema Restante Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.06 kb
#include<stdio.h>

int n,v[30],i,j,ok,k,nr;
char x;
long int y,m[36001][3],zece;
int main(){

FILE *f=fopen("restante.in","r");
fscanf(f,"%d",&n);


fscanf(f,"%c",&x);

  for(i=1;i<=n;i++){

   fscanf(f,"%c",&x);
   while(x!='\n'){
   v[x-96]++;
   fscanf(f,"%c",&x);
   }

   zece=1;
   y=0;
   for(j=1;j<=9;j++){
   y+=zece*v[j];
   zece*=10;
   v[j]=0;
   }
   m[i][0]=y;

   zece=1;
   y=0;
   for(j=10;j<=18;j++){
   y+=zece*v[j];
   zece*=10;
   v[j]=0;
   }
   m[i][1]=y;

   zece=1;
   y=1;

   for(j=19;j<=26;j++){
   y+=zece*v[j];
   zece*=10;
   v[j]=0;
   }
   m[i][2]=y;

  }

fclose(f);

nr=n;
for(i=1;i<=n;i++){
 if(m[i][0]!=-1){
 k=0;

  for(j=i+1;j<=n;j++){
  if(m[j][0]!=-1){
  ok=1;

    for(k=0;k<=2;k++){
      if(m[i][k]!=m[j][k]){
      ok=0;break;
      }
    }
  if(ok==1){k=1;nr--;m[i][0]=-1;m[j][0]=-1;}

  }
  }

 if(k==1)nr--;
 }

}

//   for(i=1;i<=n;i++){
 //  if(m[i][0]!=-1)nr++;
  // }

FILE *g=fopen("restante.out","w");
fprintf(g,"%d",nr);
fclose(g);

return 0;
}