Pagini recente » Cod sursa (job #1683060) | Grupuri | Cod sursa (job #207314) | Balul Bobocilor | Cod sursa (job #303206)
Cod sursa(job #303206)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define a(i,j) a[(i)*18+(j)]
//#define a(i,j) a[i][j]
int sort_function( const void *a, const void *b)
{
int dif;
dif =*((char*)a) - *((char*)b);
if (dif < 0)
return -1;
if (dif > 0)
return 1;
return 0;
}
int sort_function2 (const void*a, const void *b)
{
return (strcmp(*((char**)a),*((char**)b)));
}
int main() {
long n, i, j, len, nr;
char s[18];
char c;
char **a;
FILE *f;
f = fopen ("restante.in", "r");
freopen ("restante.out", "w", stdout);
fscanf (f,"%ld\n",&n);
a = malloc ((n+1) * sizeof (char*));
i = 1; j = 1;
for (i = 1; i <= n; i++){
fscanf (f,"%s\n",s);
a[i] = malloc ( (strlen(s)+1) * sizeof(char));
strcpy(a[i]+1,s);
a[i][0] = 'O';
}
//for (i = 1; i <= n; i++)
// printf ("%s\n",a[i]);
for (i = 1; i <= n; i++)
qsort((void*)a[i], strlen(a[i]), sizeof(char), sort_function);
//for (i = 1; i <= n; i++)
// printf ("%s\n",a[i]);
//printf ("\n");
qsort((void *)(a+1), n, sizeof(char*), sort_function2);
// for (i = 1; i <= n; i++)
// printf ("%s\n",a[i]);
nr = 1;
for (i = 1; i < n; i++)
for(j =i+1; j <= n; j++)
if (strcmp (a[i],a[j]) != 0)
{ len = j - i;
if (len == 1) nr++;
i = j;
}
printf ("%ld",nr);
fclose(f);
return 0;
}