Pagini recente » Cod sursa (job #1557868) | Cod sursa (job #602645) | Cod sursa (job #2720278) | Cod sursa (job #1702498) | Cod sursa (job #2387379)
#include <cstdio>
#include <algorithm>
#define MAXN 36000
char fr[MAXN][26];
int p[MAXN], pr[MAXN];
bool cmp(int a, int b){
int i;
for(i = 0; i < 26; i++){
if(fr[a][i] < fr[b][i])
return 1;
else if(fr[a][i] > fr[b][i])
return 0;
}
return 0;
}
bool eq(int a, int b){
int i;
for(i = 0; i < 26; i++){
if(fr[a][i] != fr[b][i])
return 0;
}
return 1;
}
int main(){
freopen("restante.in", "r", stdin);
freopen("restante.out", "w", stdout);
int n, i;
char ch;
scanf("%d ", &n);
for(i = 0; i < n; i++){
ch = fgetc(stdin);
while(ch >= 'a' && ch <= 'z'){
fr[i][ch - 'a']++;
ch = fgetc(stdin);
}
p[i] = i;
}
std::sort(p, p + n, cmp);
int r = n;
for(i = 1; i < n; i++)
if(eq(p[i], p[i - 1]))
pr[i] = pr[i - 1] = 1;
for(i = 0; i < n; i++)
r -= pr[i];
printf("%d", r);
return 0;
}