Cod sursa(job #124989)

Utilizator radamiRadu Patulescu radami Data 20 ianuarie 2008 10:50:43
Problema Restante Scor 0
Compilator cpp Status done
Runda preONI 2008, Runda 3, Clasele 5-8 Marime 0.94 kb
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int n;
int mat[36005][30],sel[36005];
int nr_cuv,nr_orig;



int main ()
{
	freopen("restante.in","r",stdin);
	freopen("restante.out","w",stdout);
	
	scanf("%d",&n);
	for (int i = 1;i <= n ; i++)
		{
			char aux[17];
			int v[30];
			scanf("%s",aux);
			for (int j = 0;j <30;j++)
				v[j] = 0;
			v[0] = strlen(aux);
			for (int j = 0;j < v[0];j++)
					v[aux[j] - 96] ++;
			int ok = 0;		
			for (int j = 1;j <= nr_cuv; j++)
			{
				ok = 1;
				if (v[0] == mat[j][0])
					for (int k = 1;k <= v[0]; k++)
						if (v[k] != mat[j][k])
							ok = 0;
				if (ok)
					{
						if (sel[j] == 0)
							nr_orig--;
						sel[j] = 1;
						j = nr_cuv + 1;
					}
			}
			if (ok == 0)
			{
				nr_orig ++;
				nr_cuv ++;
				mat[nr_cuv][0] = v[0];
				for (int k = 1;k <= v[0];k++)
					mat[nr_cuv][k] = v[k];
			}
		}
	printf("%d",nr_orig);
	
	return 0;
}