Cod sursa(job #130023)

Utilizator M@2Te4iMatei Misarca M@2Te4i Data 30 ianuarie 2008 21:22:30
Problema Restante Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.05 kb
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#define v 36001
//#include <algorithm>

using namespace std;

char a[v][17];
//int b[3601][17];
int n,w=0,t;

int sort_function( const void *a, const void *b)
{
   return( strcmp((char *)a,(char *)b) );
}

void citire()
{
    freopen("restante.in","r",stdin);
    scanf("%d\n", &n);
    for (int i=0; i<n; i++)
    {
	//scanf("%d", &a[i]);
	fgets(a[i],20,stdin);
	if (a[i][strlen(a[i])-1]=='\n')
        a[i][strlen(a[i])-1]=0;
	t=strlen(a[i]);
	qsort((void *)a[i], t, sizeof(a[i][0]), sort_function);
    }
    fclose(stdin);
}

void verificare()
{
    for (int i=0; i<n; i++)
    {
	int q=0;
	if (i!=0 && strcmp(a[i],a[i-1])==0)
	    q=1;
	if (i!=n-1 && strcmp(a[i],a[i+1])==0)
	    q=1;
	if (q==0)
	    ++w;
    }
}

void afisare()
{
    freopen("restante.out","w",stdout);
    printf("%d", w);
    fclose(stdout);
}

int main()
{
    citire();
    qsort((void *)a, t, sizeof(a[0]), sort_function);
    verificare();
    afisare();
    return 0;
}