Cod sursa(job #417236)

Utilizator crushackPopescu Silviu crushack Data 14 martie 2010 11:08:01
Problema Restante Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <stdio.h>
char cuv[36000][17];
bool a[36000];
void sort(char*,int,int);
int main()
{
	int n,i,j,k,l,nr,c,ax;
	char ch[17],chr;
	bool ok;
	freopen("restante.in","r",stdin);
	freopen("restante.out","w",stdout);
	scanf("%d\n",&n);
	nr=0;c=0;
	for (l=0;l<n;l++)
	{
		scanf("%c",&chr);
		ch[0]=0;
		while (chr!='\n')
		{
			ch[0]++;
			ch[ch[0]]=chr;
			scanf("%c",&chr);
		}
		ax=ch[0]+1;
		sort(ch,1,ax);
		for (i=0;i<nr;i++)
		{
			j=0;
			while (cuv[i][j]==ch[j] && j<cuv[i][0])
				j++;
			if (j==cuv[i][0]){ a[i]=true; break;}
		}
		if (i==nr)
		{
			for (i=0;i<=ch[0];i++)
				cuv[nr][i]=ch[i];
			nr++;
		}
	}
	for (i=0;i<nr;i++)
		if (!a[i]) c++;
	printf("%d",c);
	return 0;
}

void sort(char *a,int in,int sf)
{
	for (int i=in;i<sf;i++)
	{
		int p=i;
		for (int j=i+1;j<sf;j++)
			if (a[j]<a[p]) 
				p=j;
		if (p!=i)
		{
			int ax=a[p];
			a[p]=a[i];
			a[i]=ax;
		}
	}
}