Cod sursa(job #1298909)

Utilizator robx12lnLinca Robert robx12ln Data 23 decembrie 2014 12:22:44
Problema Restante Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.02 kb
#include<fstream>
#include<algorithm>
#include<cstring>
#include<vector>
using namespace std;
ifstream fin("restante.in");
ofstream fout("restante.out");
int v[36005][20];
int x[36005];
char s[20];
long long i,n,m,y,j,k,nr;
int cmp(int a,int b){
    int i=1;
    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>>s;
        m=strlen(s);
        sort(s,s+m);
        for(j=0;j<m;j++){
            v[i][j+1]=(int)s[j]-96;
        }
        v[i][0]=m;
        x[i]=i;
    }
    sort(x+1,x+n+1,cmp);
    k=1;
    for(i=2;i<=n;i++){
        if(v[k][0]==v[i][0]){
            m=1;
            for(j=1;j<=v[k][0];j++){
                if(v[k][j]!=v[i][j]){
                    m=0;
                    break;
                }
            }
            if(m==0){
                nr++;
                k=i;
            }
        }else{
            k=i;
            nr++;
        }
    }
    fout<<nr;
    return 0;
}