Cod sursa(job #124995)

Utilizator gabitzish1Gabriel Bitis gabitzish1 Data 20 ianuarie 2008 10:51:14
Problema Restante Scor 10
Compilator cpp Status done
Runda preONI 2008, Runda 3, Clasa a 9-a Marime 0.97 kb
#include <stdio.h>
#include <string.h>

int n, contor, a[36001][28], c;

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

	scanf("%d", &n);
	int i, j, l, k, t, ok;
	char s[20];

	scanf("%s", &s);
	l = strlen(s);
	for (i = 1; i <= l; i++) a[1][s[i-1] - 'a' + 1]++;
	a[1][0] = l; contor++;

	i = c = 1;
	j = 2;
	while (c < n)
	{
		scanf("%s",&s);
		l = strlen(s);
		a[j][0] = l;
		for (k = 1; k <= l; k++) a[j][s[k-1] - 'a' + 1]++;

		ok = 1, c++, contor++;

		for (k = 1; k < j; k++)
		{
			if (a[k][0] == a[j][0])
			{
				for (t = 1; t <= 27; t++) if (a[k][t] != a[j][t]) break;
				if (t > 27)
				{	contor -= 2;
					a[k][0] = a[j][0] = 0;
					ok = 0;
				}
			}
			else if (!a[k][0])
			{
				for (t = 1; t <= 27; t++) if (a[k][t] != a[j][t]) break;
				if (t > 27)
				{
					contor--;
					a[j][0] = 0;
					ok = 0;
				}
			}
			
		}
                j++;
	}
	printf("%d\n",contor);
	return 0;
}