Cod sursa(job #128067)

Utilizator mithyPopovici Adrian mithy Data 26 ianuarie 2008 00:03:24
Problema Restante Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include <fstream>
#include <string.h>

#define CMax 20
#define NMax 36005

std::ifstream f( "restante.in" );
std::ofstream g( "restante.out" );

long n;
char cuv[NMax][CMax];

void citire();
void rez();

int sort( const void* a, const void* b )
{
	return ( *(char*)a - *(char*)b );
}
int sort2( const void* a, const void*b )
{
	return strcmp((char*)a,(char*)b);
}
int main()
{
	citire();
	rez();
	return 0;
}
void rez()
{
	int i, app, orig = 0;
	char prev[CMax];

	strcpy( prev, cuv[0] ); app = 0;
	for (i=1; i<=n; i++)
	{
		if ( strcmp(prev,cuv[i]) == 0 )
		{
			app++;
		}
		else
		{
			if ( app == 0 )
				orig++;
			app = 0;
		}			
		strcpy(prev, cuv[i]);
	}
	g << orig << '\n';
}
void citire()
{
	long i, j, k, lg, lit[30];
	char aux[CMax];

	f >> n;	
	for (i=0; i<n; i++)
	{
		f >> aux;
		qsort( (void*) aux, strlen(aux), sizeof(aux[0]), sort );
		strcpy( cuv[i], aux );
	}

	qsort( (void*) cuv[0], n, sizeof(cuv[0]), sort2 );
	strcpy( cuv[n], " " );
}