Pagini recente » Cod sursa (job #880227) | Cod sursa (job #1299204) | Cod sursa (job #414249) | Cod sursa (job #2958354) | Cod sursa (job #1811404)
#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,j;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(i!=j)Compara(i,j);
for(i=1;i<=n;i++)
if(viz[i]==0) cnt++;
fout<<cnt<<"\n";
fout.close();
}
int main()
{
Citire();
Rezolvare();
return 0;
}