Cod sursa(job #462594)

Utilizator mihaipopa12Popa Mihai mihaipopa12 Data 11 iunie 2010 21:55:53
Problema Restante Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include<stdio.h>
#include<string>
#include<algorithm>
using namespace std;
FILE*f=fopen("restante.in","r");
FILE*g=fopen("restante.out","w");
int i,n,l,sir[36005],nr,cons;
char a[36005][20];

int cmp(int x, int y){
	
	if(strcmp(a[x],a[y])<0)
		return 1;
	return 0;
	
}
int main () {
	
	fscanf( f,"%d\n", &n );
	for( i = 1 ; i <= n ; ++i ){
		fscanf( f,"%s",a[i] );
		l = strlen ( a[i] );
		sir[i] = i;
		sort(a[i],a[i] + l);
	}
	
	sort ( sir + 1, sir + n + 1, cmp ) ;
	
	nr = n ;
	
	cons = 1 ;
	
	for ( i = 1 ; i < n ; ++i ){
		
		//compar a[sir[i]] cu a[sir[i+1]]
		
		if ( memcmp(&a[sir[i]],&a[sir[i+1]],18) == 0 ){
			++cons ;
		}			
		else{
			if(cons>1)
				nr -= cons ;
			cons = 1 ;
		}
	}
	if ( cons > 1 )
		nr -= cons ;
	fprintf(g,"%d\n",nr);
	
	fclose(f);
	fclose(g);
	return 0;
}