Cod sursa(job #132641)

Utilizator katakunaCazacu Alexandru katakuna Data 6 februarie 2008 12:00:24
Problema Restante Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.01 kb
#include<stdio.h>   
  
int ok2,n,i,j,ok,k,nr;
long int zece,unu9,zece18,nouaspe26,v[370][3];
int o,x,m[361][30];
int main(){

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


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

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

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

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


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

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

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

  }

fclose(f);

nr=n;

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

   if(m[i][0]!=-1){
   ok2=1;

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

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

	  if(v[i][k]!=v[j][k]){
	  ok=0;

	  break;
	  }

	}

		if(ok){
		m[j][0]=-1;
		nr--;
		ok2=0;

		}


      }
      

      }

   if(!ok2)nr--;
   }

  }



fprintf(g,"%d",nr);
fclose(g);

return 0;
}