Cod sursa(job #1309418)

Utilizator robx12lnLinca Robert robx12ln Data 5 ianuarie 2015 18:56:08
Problema Restante Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include<fstream>
#include<algorithm>
#include<cstring>
using namespace std;
ifstream fin("restante.in");
ofstream fout("restante.out");
char v[36005][20];
short f[36005];
int x[36005];
char s[20];
long long i,n,m,y,j,k,nr;
int cmp(int a,int b){
    int i=0;
    while(v[a][i]==v[b][i]){
        i++;
    }
    return v[a][i]<v[b][i];
}
int main(){
    fin>>n;
    for(i=1;i<=n;i++){
        fin>>v[i];
        m=strlen(v[i]);
        sort(v[i],v[i]+m);
        f[i]=m;
        x[i]=i;
    }
    sort(x+1,x+n+1,cmp);
    k=0;
    for(i=1;i<n;i++){
        if(f[x[k]]==f[x[i]]){
            m=1;
            for(j=0;j<f[x[k]];j++){
                if(v[x[k]][j]!=v[x[i]][j]){
                    m=0;
                    break;
                }
            }
            if(m==0){
                nr++;
                k=i;
            }
        }else{
            k=i;
            nr++;
        }
    }
    fout<<nr;
    return 0;
}