Cod sursa(job #125212)

Utilizator toni2007Pripoae Teodor Anton toni2007 Data 20 ianuarie 2008 12:04:52
Problema Restante Scor 100
Compilator cpp Status done
Runda preONI 2008, Runda 3, Clasa a 9-a Marime 1.04 kb
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

struct cuv{
	int v;
	char s[20];
};
cuv x[36010];

int compara1(const void *a, const void *b)
{
    struct cuv *ia = (struct cuv *)a;
    struct cuv *ib = (struct cuv *)b;
    return strcmp(ia->s, ib->s);
	/* strcmp functions works exactly as expected from
	comparison function */ 
} 

int compara2(const void *a, const void *b)
{
    const char *ia = (const char *)a; 
    const char *ib = (const char *)b;
    return *ia  - *ib; 
}

int main(){
	int n,i,s=0;;
	freopen("restante.in","r",stdin);
	freopen("restante.out","w",stdout);
	scanf("%d\n",&n);
	for (i=0;i<n;++i){
		gets(x[i].s);
		x[i].v=strlen(x[i].s);
		qsort(x[i].s,x[i].v,sizeof(x[i].s[0]),compara2);
	}
	qsort(x,n,sizeof(x[0]),compara1);
	//for (i=0;i<n;++i)
	//	printf("%s\n",x[i].s);
	if (strcmp(x[0].s,x[1].s)!=0)
		++s;
	if (strcmp(x[n-1].s,x[n-2].s)!=0)
		++s;
	for (i=1;i<n-1;++i)
		if (strcmp(x[i-1].s,x[i].s)!=0 && strcmp(x[i+1].s,x[i].s)!=0)
			++s;
	printf("%d\n",s);
	return 0;
}