Pagini recente » Cod sursa (job #60317) | Cod sursa (job #2416335) | Cod sursa (job #478236) | Cod sursa (job #888287) | Cod sursa (job #1812606)
#include <fstream>
#include <algorithm>
using namespace std;
long long n,i,j,k,a1,a2,nr;
char c[20];
struct vec
{
long long a,b;
};
vec v[36005];
bool compara (vec A, vec B)
{
if(A.a!=B.a) return A.a>B.a;
else return A.b>B.b;
}
int main()
{
ifstream f("restante.in");
ofstream g("restante.out");
f>>n;
for(i=1; i<=n; i++)
{
f>>c;
a1=0;
a2=0;
k=0;
while(c[k]) k++;
k--;
sort(c, c+k+1);
for(j=0; j<=k; j++)
{
a1=(26*a1+(c[j]-'a'))%1000117;
a2=(26*a2+(c[j]-'a'))%100109;
}
v[i].a=a1;
v[i].b=a2;
}
sort(v+1, v+n+1, compara);
for(i=1; i<=n; i++)
{
if(v[i].a!=v[i+1].a||v[i].b!=v[i+1].b)
{
if(v[i].a!=v[i-1].a||v[i].b!=v[i-1].b)
nr++;
}
}
g<<nr<<'\n';
f.close(); g.close();
return 0;
}