Cod sursa(job #125632)

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

int n,v[30],m[36000][3],i,j,ok,k,nr,zece;
char x;
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;
   for(j=1;j<=9;j++){
   m[i][0]+=zece*v[j];
   zece*=10;
   v[j]=0;
   }

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

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

  }

fclose(f);

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

  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){m[i][0]=-1;m[j][0]=-1;}
  }
  }

 }

}

   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;
}