Cod sursa(job #184497)

Utilizator MirageRobert Sandu Mirage Data 23 aprilie 2008 18:49:27
Problema Restante Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int comp(const void *a,const void *b){
	return *(char *)a-*(char *)b;
}
int cmp(const void *a, const void *b){
	return strcmp((char *)a,(char *)b);
}
int lung(char *s){
	int i;
	for(i=0;s[i]>='a'&&s[i]<='z';++i);
	return i;
}
int main () {
	freopen("restante.in","r",stdin);
	freopen("restante.out","w",stdout);
	int i,n,j,c,nr=0;
	char v[16],m[36000][16],x[16],ok;
	scanf("%d\n",&n);
	for(i=0;i<n;++i){
		fgets(v,16,stdin);
		c=lung(v);
		qsort(v,c,sizeof(v[0]),comp);
		for(j=0;j<c;++j)
			m[i][j]=v[j];
	}
	qsort(m,n,sizeof(m[0]),cmp);
	for(i=0;i<n;++i)
		if(strcmp(x,m[i])){
			ok=1;
			++nr;
			c=strlen(m[i]);
			for(j=0;j<c;++j)
				x[j]=m[i][j];
		}
		else
			if(ok){
				--nr;
				ok=0;
			}
	printf("%d\n",nr);
	return 0;
}