Pagini recente » Cod sursa (job #2835666) | Cod sursa (job #2752626) | Cod sursa (job #411588) | Cod sursa (job #1934451) | Cod sursa (job #423151)
Cod sursa(job #423151)
#include <cstdio>
#include <cstring>
#include <cstdlib>
FILE* fin=fopen("restante.in","r");
FILE* fout=fopen("restante.out","w");
typedef unsigned long long int64;
int n,nc=0;
int64 cuv[36005][2];
int cmp(const void* p1,const void* p2){
int64* a=(int64*)p1,*b=(int64*)p2;
return (a[0]==b[0])?((a[1]<b[1])?-1:1):((a[0]<b[0])?-1:1);
}
void addWord(){
char buf[20],freq[27],a;
fgets(buf,sizeof(buf),fin);
memset(freq,0,sizeof(freq));
for(int i=0;buf[i];i++){
freq[buf[i]-'a']++;
}
for(int i=0;i<=26;i++){
cuv[nc][i>>4]|=(int64)freq[i];
if(i!=15){
cuv[nc][i>>4]<<=4;
}
}
nc++;
}
int main(){
fscanf(fin,"%d ",&n);
for(int i=0;i<n;i++){
addWord();
}
qsort(cuv,nc,sizeof(int64)*2,cmp);
int cnt=0,nu=0;
for(int i=0;i<nc;i++){
cnt=0;
while(cuv[i][0]==cuv[i+1][0]&&cuv[i][1]==cuv[i+1][1]&&i+1<nc){
cnt++,i++;
}
if(cnt==0){
nu++;
}
}
fprintf(fout,"%d\n",nu);
fclose(fin);
fclose(fout);
return 0;
}