Pagini recente » Cod sursa (job #528756) | Cod sursa (job #3158401) | Cod sursa (job #2731200) | Cod sursa (job #623182) | Cod sursa (job #1811402)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("restante.in");
ofstream fout("restante.out");
char a[20];int n,viz[36002];
struct cuv
{
int t[30];
};
inline bool cmp(const cuv A,const cuv B)
{
int i;
for(i=0;i<=27;i++)
if(A.t[i]<B.t[i]) return A.t[i];
return A.t[i]<=B.t[i];
}
cuv v[36002];
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();
sort(v+1,v+n+1,cmp);
}
inline void Compara(int i,int j)
{
int pas;
for(pas=0;pas<=27;pas++)
if(v[i].t[pas]<v[j].t[pas]||v[i].t[pas]>v[j].t[pas]) return;
viz[i]=viz[j]=1;
}
void Rezolvare()
{
int i,cnt=0;;
for(i=2;i<=n;i++)
Compara(i-1,i);
for(i=1;i<=n;i++)
if(viz[i]==0) cnt++;
fout<<cnt<<"\n";
fout.close();
}
int main()
{
Citire();
Rezolvare();
return 0;
}