Pagini recente » Cod sursa (job #147339) | Cod sursa (job #3040424) | Cod sursa (job #2480153) | Cod sursa (job #2171743) | Cod sursa (job #1818868)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin ("restante.in");
ofstream fout("restante.out");
int n,i,z,j,f[36010],x[36010],ii,ok,nr,aux;
char a[18],v[36010][18],w[36010][18];
int comp(int a, int b)
{
int i;
if(v[a][0]>v[b][0])
return 1;
else
if(v[a][0]<v[b][0])
return -1;
else
for(i=1;i<=v[a][0];i++)
if(v[a][i]>v[b][i])
return 1;
else
if(v[a][i]<v[b][i])
return -1;
return 0;
}
int cpl(int a, int b)
{
if(comp(a,b)==-1)
return b>a;
if(comp(a,b)==1)
return a>b;
return a=b;
}
int main ()
{
fin>>n;
for(i=1;i<=n;i++)
{
fin>>a;
x[i]=i;
z=0;
while(a[z]!=0)
z++;
sort(a, a+z);
for(j=1;j<=z;j++)
v[i][j]=a[j-1];
v[i][0]=z;
}
nr=n;
sort(x+1, x+1+n,cpl);
for(i=1;i<n;i++)
{
if(v[x[i+1]][0]==v[x[i]][0])
{
ok=1;
for(j=1;j<=v[x[i]][0];j++)
if(v[x[i+1]][j]!=v[x[i]][j])
ok=0;
if(ok==1)
{
nr--;
if(f[x[i]]==0)
{
f[x[i]]=-1;
nr--;
}
f[x[i+1]]=-1;
}
aux++;
}
}
fout<<nr;
fin.close();
fout.close();
return 0;
}