Cod sursa(job #125713)

Utilizator andrei.12Andrei Parvu andrei.12 Data 20 ianuarie 2008 16:53:47
Problema Restante Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include<stdio.h>
#include<string.h>
#include<algorithm>
#define lg 36005

using namespace std;

int nr, i, j, st[lg], x, n, raspuns, r[lg], pz;
char vc[lg][20], vn[lg][20], s[20];
int cmp(int a, int b){
	if (strcmp(vc[a], vc[b]) > 0)
		return 0;
	return 1;
}
int main()
{
	freopen("restante.in", "rt", stdin);
	freopen("restante.out", "wt", stdout);
	
	scanf("%d", &nr);
	
	for (i = 1; i <= nr; i ++){
		scanf("%s", s);
		n = strlen(s);
		sort(s, s+n);
		
		for (j = 0; j < n; j ++)
			vc[i][j] = s[j];
	}
	
	for (i = 1; i <= nr; i ++)
		st[i] = i;
	
	sort(st+1, st+nr+1, cmp);
	
	for (i = 1; i <= nr; i ++){
		x = st[i];
		
		n = strlen(vc[x]);
		for (j = 0; j < n; j ++)
			vn[i][j] = vc[x][j];
	}
	
	r[1] = 1;
	pz = 1;
	for (i = 2; i <= nr; i ++)
		if (strcmp(vn[i], vn[i-1]) == 0)
			r[pz] ++;
		else
			r[++pz] = 1;
	
	for (i = 1; i <= pz; i ++)
		if (r[i] == 1)
			raspuns ++;
	
	printf("%d\n", raspuns);
	
	return 0;
}