Cod sursa(job #1810775)

Utilizator Ruxandra985Nanu Ruxandra Laura Ruxandra985 Data 20 noiembrie 2016 16:10:55
Problema Restante Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <cstdio>
#include <algorithm>
#include <bitset>

using namespace std;
bitset <30> ff;
pair <int,int> v[36001];
int main()
{
    FILE *fin=fopen ("restante.in","r");
    FILE *fout=fopen ("restante.out","w");
    int n,i,nr,uni,st;
    char c;
    fscanf (fin,"%d\n",&n);
    for (i=1;i<=n;i++){
        c=fgetc (fin);
        nr=0;
        ff.reset();
        while (c!='\n'){
            c-='a';
            v[i].second++;
            if (ff[(int)c]==0){
                nr=nr+(1<<c);
                ff[(int)c]=1;
            }
            c=fgetc (fin);
        }
        v[i].first=nr;
    }
    sort (v+1,v+n+1);
    uni=0;
    st=0;
    for (i=1;i<=n;i++){
        if (v[i].first!=v[i-1].first || v[i].second!=v[i-1].second){
            uni++;
            st=0;
        }
        else if (st==0){
            st=1;
            uni--;
        }
    }
    fprintf (fout,"%d",uni);
    return 0;
}