Cod sursa(job #1715674)

Utilizator giotoPopescu Ioan gioto Data 11 iunie 2016 12:41:02
Problema Restante Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <cstdio>
#include <algorithm>
using namespace std;

char c;
bool f[36002];
int sol,n,i,nr[36002],a[36002][21];
int main()
{
    freopen("restante.in", "r", stdin);
    freopen("restante.out", "w", stdout);
    scanf("%d", &n);
    scanf("%c", &c);
    for(i=1;i<=n;++i){
        scanf("%c", &c);
        while(c!='\n'){
            a[i][++nr[i]]=c-97;
            scanf("%c", &c);
        }
        sort(a[i]+1,a[i]+nr[i]+1);
    }sol=n;
    for(i=1;i<=n;++i){
        if(f[i]==0){
            for(int j=i+1;j<=n;++j){
                if(f[j]==0&&nr[i]==nr[j]){
                    bool ok=0;
                    for(int t=1;t<=nr[i];++t)
                        if(a[i][t]!=a[j][t]){
                            ok=1;break;
                        }
                    if(ok==0){
                        f[j]=1;--sol;
                        f[i]=1;
                    }
                }
            }
            if(f[i]==1) --sol;
        }
    }printf("%d", sol);
    return 0;
}