Cod sursa(job #276868)

Utilizator runnaway90Oprescu Radu Constantin runnaway90 Data 11 martie 2009 13:01:42
Problema Restante Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include<stdio.h>
#include<string.h>
#include<stdlib.h>

char a[37002][18];
int x, i, n, h[37002], nr;

int cmp(const void * a, const void * b){
        return (*(char *) a - *(char*) b);
}

int cmp2( const void * b, const void * c){
        return strcmp(a[*(int *) b], a[*(int *) c]);
}

int main (){
    freopen("restante.in","r",stdin);
    freopen("restante.out","w",stdout);
    scanf("%d\n", &n);

    for (i = 1; i <= n; i++){
        scanf("%s", a[i]); h[i] = i; x = strlen(a[i]);
        qsort(a[i], x, 1, cmp);
    }
    nr = 0; qsort(h+1, n, sizeof(int), cmp2);

    for (i = 2; i < n; i++)
        if (strcmp(a[h[i]], a[h[i-1]]) && strcmp(a[h[i]], a[h[i+1]]))
            nr++;

    if (strcmp(a[h[1]], a[h[2]])) nr++;
    if (strcmp(a[h[n-1]], a[h[n]])) nr++;

    printf("%d\n", nr);

    return 0;
}