Cod sursa(job #1687726)

Utilizator MihneaGhiraMihnea MihneaGhira Data 13 aprilie 2016 01:10:30
Problema Restante Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include<fstream>
#include<cstring>
#include<algorithm>
using namespace std;
ifstream fin("restante.in");
ofstream fout("restante.out");
int N,n,nr,k,s1,i,j,s2,k1,k2;
char v[20];
pair <int,int> p[36010];
int main(){
    fin>>N;
    for(i=1;i<=N;i++){
        fin>>v;
        n=strlen(v);
        sort(v,v+n);
        s1=0;
        s2=0;
        for(j=0;j<n;j++){
            if(j==0){
                k1=1;
                k2=1;
            }
            else{
                k1=(k1*26)%100009;
                k2=(k2*26)%666013;
            }
            s1=(s1+v[j]*k1)%100009;
            s2=(s2+v[j]*k2)%666013;
        }
        p[i].first=s1;
        p[i].second=s2;
    }
    sort(p+1,p+N+1);
    for(i=1;i<=N;i++){
        if(p[i]!=p[i-1]&&p[i]!=p[i+1])
            nr++;
    }
    fout<<nr;
    return 0;
}