Cod sursa(job #2396974)

Utilizator divianegoescuDivia Negoescu divianegoescu Data 4 aprilie 2019 00:04:52
Problema Restante Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("restante.in");
ofstream fout("restante.out");
int n,i,j,x,nr,e,lc;
char c[26];
int f[36002][26],v[36002];
void init(){
    for(int i=0;i<26;i++)
        c[i]=0;
}
int cmp(int i,int j){
    int t;
    for(t=0;t<26;t++)
        if(f[i][t]!=f[j][t])
            break;
    if(t==26)return i<j;
    return f[i][t]<f[j][t];
}
int egale(int i,int j){
    for(int t=0;t<26;t++)
        if(f[i][t]!=f[j][t])
            return 0;
    return 1;
}
int main(){
    fin>>n;
    for(i=1;i<=n;i++){
        init();
        fin>>c;
        for(j=0;c[j];j++)
            f[i][c[j]-'a']++;
        v[i]=i;
    }
    sort(v+1,v+n+1,cmp);
    lc=1;
    for(i=2;i<=n;i++)
        if(egale(v[i],v[i-1]))
            lc++;
        else{
            if(lc==1)nr++;
            lc=1;
        }
    if(lc==1)nr++;
    fout<<nr;
    return 0;
}