Pagini recente » Cod sursa (job #3244536) | Cod sursa (job #2270908) | Cod sursa (job #2334940) | Cod sursa (job #2256152) | Cod sursa (job #288965)
Cod sursa(job #288965)
#include<stdio.h>
int len(char *p)
{
return (*p ? 1 + len(++p) : 0);
}
void qsort(char* v,int st,int dr)
{
int mijl,aux,max,min;
max = dr; min = st;
mijl = v[st+(dr-st)/2];
do
{
while(v[min] < mijl) min++;
while(v[max] > mijl) max--;
if(min <= max)
{
aux = v[min];
v[min++] = v[max];
v[max--] = aux;
}
}while(min <= max);
if(st < max) qsort(v,st,max);
if(min < dr) qsort(v,min,dr);
}
long n,i,j,k,t = 0,ok;
char (*lit)[16] = new char[36000][16];
char p1[36000];
int main()
{
freopen("restante.in","r",stdin);
freopen("restante.out","w",stdout);
scanf("%ld",&n);
for(i = 0; i < n; i++)
{
scanf("%s",lit[i]);
qsort(lit[i],0,len(lit[i])-1);
}
for(i = 0; i < n; i++)
{
ok = 1;
if(p1[i] == 0)
{
for(j = i+1; j < n; j++)
{
if(len(lit[i]) == len(lit[j]))
for(k = 0; k < len(lit[i]) && lit[i][k] == lit[j][k]; k++)
;
if(k == len(lit[i])) ok = 0,p1[i] = p1[j] = 1;
}
}
else
{
ok = 0;
}
if(ok) t++;
}
printf("%ld",t);
fclose(stdin); fclose(stdout);
return 0;
}