Cod sursa(job #226612)

Utilizator SheepBOYFelix Liviu SheepBOY Data 2 decembrie 2008 09:16:28
Problema Restante Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include<stdio.h>
#include<string.h>
int n,mark[36000];
int cuvs[36000][27];
int compare(int a,int b)
{
	for(int i=0;i<26;++i)
		if(cuvs[a][i]!=cuvs[b][i])
			return 0;
	
	return 1;
}
int main()
{
	int ncuv;
	char cuv[18];
	freopen("restante.in","r",stdin);
	freopen("restante.out","w",stdout);
	scanf("%d\n",&n);
	int i;
	for(i=0;i<n;++i)
	{
		gets(cuv);
		ncuv=strlen(cuv);
		for(int j=0;j<ncuv;++j)
			++cuvs[i][cuv[j]-97];
	}
	int nr=0;
	int nrt=0;
	int entered=0;
	for(i=0;i<n-1;++i)
	{
		if(!mark[i])
		{
			nr=0;
			entered=0;
			for(int j=i+1;j<n;++j)
			{
				if(!mark[j])
				{
					entered=1;
					if(compare(i,j))
					{
						nr=1;
						mark[i]=1;
						mark[j]=1;
					}			
				}		
			}
		if(!nr&&entered)
			++nrt;
		}
	}
	if(!mark[n-1])
	++nrt;
		printf("%d",nrt);
	return 0;
}