Cod sursa(job #126232)

Utilizator bogdanhm999Casu-Pop Bogdan bogdanhm999 Data 21 ianuarie 2008 18:43:02
Problema Restante Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <stdlib.h>
#include <string.h>
#include <stdio.h>

long n,i,j,k,q,ind[36002],sol,a[27];
char cuv[36002][18];

int comp(const void * n1,const void *n2){
    return strcmp(cuv[*((long*)n1)],cuv[*((long*)n2)]);
}

int main(){
    freopen("restante.in","r",stdin);
    freopen("rsetante.out","w",stdout);
    
    scanf("%ld\n",&n);
    for (i=1;i<=n;i++){
        ind[i]=i;
        scanf("%s\n",cuv[i]);
        q=-1;
        for (j=0;j<26;j++)a[j]=0;
        for (j=0;j<strlen(cuv[i]);j++)
            a[cuv[i][j]-'a']++;
        for (j=0;j<26;j++)
            for (k=1;k<=a[j];k++)
                {q++;cuv[i][q]=j+'a';}
        q++;cuv[i][q]=0;
    }
    
    qsort(ind,n+1,sizeof(long),comp);
    ind[n+1]=n+1;
    
    for (i=1;i<=n;i++)
        if (strcmp(cuv[ind[i-1]],cuv[ind[i]])!=0&&
            strcmp(cuv[ind[i+1]],cuv[ind[i]])!=0)sol++;
    printf("%ld\n",sol);
    
    return 0;
}