Cod sursa(job #439807)

Utilizator crushackPopescu Silviu crushack Data 11 aprilie 2010 19:29:12
Problema Restante Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <stdio.h>
#include <string.h>
#include <algorithm>
#define lung 36000
using namespace std;

char c[lung][17];
bool org[lung];
char cr[17];
int a[26];

int main()
{
	int n,nr,i,j,nn,ct;
	char ch;
	freopen("restante.in","r",stdin);
	freopen("restante.out","w",stdout);
	scanf("%d\n",&n);
	nr=0;ct=0;
	for (i=0;i<n;i++)
	{
		scanf("%c",&ch);nn=0;
		while (ch!='\n')
		{
			a[ch-97]++;
			scanf("%c",&ch);
		}
		for (j=0;j<26;j++)
			while (a[j])
				cr[nn++]=a[j]+97,a[j]--;
			
		for (j=0;j<nr;j++)
			if (cr[0]==c[j][0])
				if ( !strcmp(cr,c[j]) )
					break;
		if (j==nr)
			memcpy(c[nr++],cr,nn),org[j]=true,ct++;
		else if (org[j])
			org[j]=false,ct--;
	}
	printf("%d\n",ct);
	return 0;
}