Cod sursa(job #294107)

Utilizator drag0s93Mandu Dragos drag0s93 Data 2 aprilie 2009 12:30:02
Problema Restante Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef char string[16];

int N;
string s[36001]; // <=> char s[36001][16]

int cmp1(const void *a, const void *b)
{
	char x=*(char*)a,y=*(char*)b;
	if(x>y)
		return 1;
	else if (x<y)
		return -1;
	return 0;
}

int cmp2(const void *a, const void *b)
{
	return strcmp((char *)a,(char *)b);
}

int main()
{
	int i;

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

	scanf("%d", &N);
	for (i = 1; i <= N; i++)
	{
		scanf("%s", s[i]);
		qsort(s[i], strlen(s[i]), sizeof(char), cmp1);
	}
	qsort(s+1, N, sizeof(string), cmp2);

	int nrorig=0;
	for(int i=1;i<=N;++i)
		if(strcmp((const char *)s[i],(const char *)s[i+1])==-1 && strcmp((const char *)s[i],(const char *)s[i+1])==-1)
			++nrorig;
	printf("%d \n",nrorig);
	return 0;
}