Cod sursa(job #303628)

Utilizator pedobearBacauanu Vlad pedobear Data 10 aprilie 2009 02:46:34
Problema Restante Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.05 kb
#include <stdio.h>
#include <algorithm>

using namespace std;

char cuv[36005][18],x;
int n,i,p[36005],start,nr,same;

int cmp (int i,int j)
{
    start=1;
    while (cuv[i][start] == cuv[j][start] && start<17) start++;
    return (cuv[i][start] < cuv[j][start]);
}

int main ()
{
    freopen ("restante.in","r",stdin);
    freopen ("restante.out","w",stdout);
    
    scanf ("%d\n",&n);
    for (i=1;i<=n;i++){
        x=0;
        while (x!='\n'){
              scanf ("%c",&x);
              if (x=='\n') break;
              cuv[i][0]++;
              cuv[i][cuv[i][0]]=x;
              }
        sort (cuv[i]+1,cuv[i]+cuv[i][0]+1);
        }
        
    for (i=1;i<=n;i++) p[i]=i;
    sort (p+1,p+n+1,cmp);
    
    nr=n;
    for (i=1;i<=n;i++){
        start=1;
        while (cuv[p[i]][start] == cuv[p[i+1]][start] && start<17) start++;
        if (start==17) same++;
        else{
            if (same>0) nr=nr-same-1;
            same=0;
            }
        }
    
    printf ("%d",nr);
        
    return 0;
}