Pagini recente » Cod sursa (job #2079630) | Cod sursa (job #63340) | Cod sursa (job #1749345) | Cod sursa (job #687119) | Cod sursa (job #1553432)
#include <stdio.h>
#include <algorithm>
#define lim 36003
using namespace std;
struct cuv{int fr[30];};
cuv v[lim];
int cmp(cuv a,cuv b){
int k=0;
while(a.fr[k]==b.fr[k]&&k<=26)
k++;
if(k==27)
return 0;
if(a.fr[k]==0)
return 1;
if(b.fr[k]==0)
return -1;
if(a.fr[k]>b.fr[k])
return -1;
else
return 1;
}
bool comp(cuv a,cuv b){
if(cmp(a,b)>=0)
return true;
else
return false;
}
int main(){
FILE *fin,*fout;
fin=fopen("restante.in","r");
fout=fopen("restante.out","w");
int i,n,rasp,cate;
char ch;
fscanf(fin,"%d",&n);
ch=fgetc(fin);
ch=0;
for(i=1;i<=n;i++){
ch=fgetc(fin);
while(ch!='\n'&&ch!=EOF){
v[i].fr[ch-'a'+1]++;
ch=fgetc(fin);
}
}
sort(v+1,v+n+1,comp);
rasp=n;
cate=0;
for(i=1;i<=n;i++)
if(cmp(v[i-1],v[i])==0)
cate++;
else{
if(cate!=1)
rasp-=cate;
cate=1;
}
if(cate!=1)
rasp-=cate;
fprintf(fout,"%d",rasp);
fclose(fin);
fclose(fout);
return 0;
}