Pagini recente » Cod sursa (job #759185) | Cod sursa (job #1646859) | Cod sursa (job #2410586) | Cod sursa (job #3235674) | Cod sursa (job #1975833)
#include <bits/stdc++.h>
#define Nmax 36005
using namespace std;
ifstream fin("restante.in");
ofstream fout("restante.out");
int n,sol[Nmax];
struct sir
{
int t[28];
};
inline bool cmp(const sir A,const sir B)
{
int i=0;
while(i<=27)
{
if(A.t[i]==B.t[i]) i++;
else return A.t[i]<B.t[i];
i++;
}
return A.t[i]<=B.t[i];
}
sir v[Nmax];
char a[20];
void Citire()
{
int i,j;
fin>>n;
for(i=1;i<=n;i++)
{
fin>>(a+1);
for(j=1;a[j];j++)
v[i].t[a[j]-'a']++;
}
fin.close();
}
inline bool Compara(int x,int y)
{
int i;
for(i=0;i<=27;i++)
if(v[x].t[i]!=v[y].t[i]) return false;
return true;
}
void Rezolvare()
{
int i;
sort(v+1,v+n+1,cmp);
for(i=2;i<=n;i++)
if(Compara(i,i-1))
{
sol[i]=1;
sol[i-1]=1;
}
int cnt=n;
for(i=1;i<=n;i++)
cnt-=sol[i];
fout<<cnt<<"\n";
fout.close();
}
int main()
{
Citire();
Rezolvare();
return 0;
}