Cod sursa(job #196218)

Utilizator gcosminGheorghe Cosmin gcosmin Data 24 iunie 2008 21:05:23
Problema Restante Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <stdio.h>
#include <algorithm>
#include <vector>
using namespace std;

#define NMAX 36010

int N;

char s[20];

vector <int> a[NMAX];

int egal(int x, int y)
{
	for (int i = 0; i < 26; i++) if (a[x][i] != a[y][i]) return 0;
	return 1;
}

int main()
{
	int i, j;

	freopen("restante.in", "r", stdin);
	freopen("restante.out", "w", stdout);

	scanf("%d", &N);

	for (i = 1; i <= N; i++) {
		scanf("%s", s);

		a[i].reserve(26);
		for (j = 0; s[j]; j++) a[i][s[j] - 'a']++;
	}

	sort(a + 1, a + N + 1);

	int rez = 0;
	for (i = 1; i <= N; ) {
		for (j = i; j <= N && egal(i, j); j++);

		rez += j - i == 1;

		i = j;
	}

	printf("%d\n", rez);

return 0;
}