Pagini recente » Cod sursa (job #2377881) | Cod sursa (job #1763498) | Cod sursa (job #84769) | Cod sursa (job #107746) | Cod sursa (job #125040)
Cod sursa(job #125040)
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>
long len, i, n, v[32], j, lgt[36010], sol, d[36010];
char st[32], h[36010][32];
struct grup {
char nume[32];
};
grup v_s[36010];
int cmp(const void *a, const void *b) {
return ( *(int *)a - *(int *)b );
}
int cmpf(const void *a, const void *b) {
return ( strcmp(((grup *)a) -> nume, ((grup *)b) -> nume) );
}
int main() {
freopen("restante.in", "r", stdin);
freopen("restante.out", "w", stdout);
scanf("%ld", &n);
for (i = 1; i <= n; ++i) {
scanf("%s", st);
len = strlen(st);
v[0] = 0;
for (j = 0; j < len; ++j) {
v[++v[0]] = (long)(st[j] - 'a' + 1);
}
qsort(v + 1, v[0], sizeof(v[0]), cmp);
for (j = 1; j <= v[0]; ++j) {
h[i][j - 1] = (char)(v[j] + 'a' - 1);
}
strcpy(v_s[i].nume, h[i]);
}
qsort(v_s, n, sizeof(char), cmpf);
/*for (i = 1; i <= n; ++i) {
printf("%s\n", v_s[i].nume);
}*/
for (i = 2; i <= n; ++i) {
if (strcmp(v_s[i].nume, v_s[i - 1].nume) == 0) {
d[i - 1] = 1;
}
}
for (i = 1; i <= n; ++i) {
if (d[i] != 1 && d[i - 1] != 1) {
++sol;
}
}
printf("%ld\n", sol);
return 0;
}