Cod sursa(job #763653)
#include<fstream>
using namespace std;
#include<algorithm>
#include<cstring>
char c[36005][17];
int v[36005];
bool cmp(int a,int b)
{
int i;
for(i=0;i<17;i++)
if(c[a][i]!=c[b][i])
break;
if(i==17)
return 1;
return c[a][i]<c[b][i];
}
bool egal(char a[],char b[])
{
int x=strlen(a);
int y=strlen(b);
if(x>y)
return 0;
for(int i=0;i<x;i++)
if(a[i]!=b[i])
return 0;
return 1;
}
int main()
{
ifstream fcin("restante.in");
ofstream fcout("restante.out");
int n,i,m,nr=0;
fcin>>n;
for(i=1;i<=n;i++)
{
fcin.get();
fcin.get(c[i],17);
m=strlen(c[i]);
sort(c[i],c[i]+m);
}
for(i=1;i<=n;i++)
v[i]=i;
sort(v+1,v+n+1,cmp);
for(i=1;i<n;i++)
if(!egal(c[v[i]],c[v[i+1]]))
nr++;
if(!egal(c[v[n-1]],c[v[n]]))
fcout<<nr;
return 0;
}