Pagini recente » Cod sursa (job #1403408) | Cod sursa (job #646418) | Cod sursa (job #624707) | Cod sursa (job #1966611) | Cod sursa (job #303279)
Cod sursa(job #303279)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int char_cmp(const void *x, const void *y) {
int d;
d = *((char*)x) - *((char*)y);
if(d < 0)
return -1;
if(d > 0)
return 1;
return 0;
}
int str_cmp(const void *x, const void *y) {
return strcmp(*((char**)x), *((char**)y));
}
int main() {
int n, i, j, v;
char tmp[17];
char **cuv;
FILE *f;
f = fopen("restante.in", "r");
fscanf(f, "%d\n", &n);
cuv = (char**)malloc(n * sizeof(char*));
for(i = 0; i < n; i++) {
fscanf(f, "%s\n", tmp);
qsort(tmp, strlen(tmp), sizeof(char), char_cmp);
cuv[i] = (char*)malloc((strlen(tmp) + 1) * sizeof(char));
strcpy(cuv[i], tmp);
/*printf("am citit %s\n", tmp);*/
}
fclose(f);
qsort(cuv, n, sizeof(char*), str_cmp);
/*for(i = 0; i < n; i++)
printf("cuv %d este %s\n", i, cuv[i]);*/
for(i = 0; i < n; i++)
free(cuv[i]);
v = 0;
i = 0;
while(i < n) {
j = i + 1;
while(j < n && strcmp(cuv[i], cuv[j]) == 0)
j++;
if(j - i == 1)
v++;
i = j;
}
free(cuv);
f = fopen("restante.out", "w");
fprintf(f, "%d\n", v);
fclose(f);
return 0;
}