Cod sursa(job #1812606)

Utilizator Mircea_DonciuDonciu Mircea Mircea_Donciu Data 22 noiembrie 2016 11:12:17
Problema Restante Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#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;
}