Pagini recente » Cod sursa (job #478445) | Cod sursa (job #1388085) | Rating Tudor Vianu (vianulegends) | Cod sursa (job #3191666) | Cod sursa (job #611944)
Cod sursa(job #611944)
#include<stdio.h>
#include<fstream>
#include<iostream>
#include<algorithm>
#include<string.h>
using namespace std;
char T[36001][17];
char R[36001][17];
void mergesort(long a,long b) {
if(a==b) return;
long m = (a+b)/2,i=a,j=m+1,p=a;
mergesort(a,m);
mergesort(m+1,b);
while(i<=m && j<=b && p<=b) {
if(strcmp(T[i],T[j])<=0) {
strcpy(R[p],T[i]);
i++;
p++;
}
else {
strcpy(R[p],T[j]);
j++;
p++;
}
}
while(i<=m && p<=b) {
strcpy(R[p],T[i]);
i++;
p++;
}
while(j<=b && p<=b) {
strcpy(R[p],T[j]);
j++;
p++;
}
for(i=a;i<=b;i++)
strcpy(T[i],R[i]);
}
int main() {
long n,i,c=0;
freopen("restante.in","r",stdin);
freopen("restante.out","w",stdout);
scanf("%ld",&n);
for(i=1;i<=n;i++) {
scanf("%s",T[i]);
sort(T[i],T[i]+strlen(T[i]));
}
mergesort(1,n);
if(n>1 && strcmp(T[1],T[2])!=0)
c++;
for(i=2;i<n;i++) {
if(strcmp(T[i-1],T[i])!=0 && strcmp(T[i],T[i+1])!=0)
c++;
}
if(strcmp(T[n-1],T[n])!=0)
c++;
printf("%ld",c);
return 0;
}