Pagini recente » Cod sursa (job #157490) | Cod sursa (job #492275) | Cod sursa (job #796542) | Cod sursa (job #1191779) | Cod sursa (job #127016)
Cod sursa(job #127016)
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<algorithm>
#define lg 36005
using namespace std;
int nr, i, j, st[lg], x, n, raspuns, r[lg], pz;
char vc[lg][20], vn[lg][20], s[20];
/*
int cmp(int a, int b){
if (strcmp(vc[a], vc[b]) > 0)
return 0;
return 1;
}
*/
int cp1(char a, char b){
if (a > b)
return 0;
return 1;
}
int cmp (const void*a, const void*b){
int x = *(int*)a, y = *(int*)b;
int v = strcmp(vc[x], vc[y]);
if (v < 0)
return -1;
if (v > 0)
return 1;
return 0;
}
int main()
{
freopen("restante.in", "rt", stdin);
freopen("restante.out", "wt", stdout);
scanf("%d\n", &nr);
for (i = 1; i <= nr; i ++){
scanf("%s", s);
n = strlen(s);
sort(s, s+n, cp1);
for (j = 0; j < n; j ++)
vc[i][j] = s[j];
}
for (i = 1; i <= nr; i ++)
st[i] = i;
//sort(st+1, st+nr+1, cmp);
qsort(st, nr+1, sizeof(st[0]), cmp);
for (i = 1; i <= nr; i ++){
x = st[i];
n = strlen(vc[x]);
for (j = 0; j < n; j ++)
vn[i][j] = vc[x][j];
}
r[1] = 1;
pz = 1;
for (i = 2; i <= nr; i ++)
if (strcmp(vn[i], vn[i-1]) == 0)
r[pz] ++;
else
r[++pz] = 1;
for (i = 1; i <= pz; i ++)
if (r[i] == 1)
raspuns ++;
printf("%d\n", raspuns);
return 0;
}