Cod sursa(job #397508)

Utilizator RoswenRus Alexandru Roswen Data 17 februarie 2010 08:45:04
Problema Restante Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;

FILE *f=fopen("restante.in","r"), *g=fopen("restante.out","w");
int k,sw,i,n;
char v[36001][17];
void ints(char a[], char b[])
{
	char aux[17];
		strcpy(aux, a);
		strcpy(a, b);
		strcpy(b, aux);
}

int main()
{
	fscanf(f, "%d", &n);
	for(i=1;i<=n;i++)
	{
		fscanf(f, "%s", v[i]);
		sort( v[i], v[i]+strlen(v[i]) );
	}
	int inj=n;
	while (inj>1)
	{
		inj/=2;
		do{
		sw=1;
		for(i=1;i<=n-inj;i++)
			if( strcmp( v[i], v[i+inj]) >0 )
			{
				ints(v[i], v[i+inj]);
				sw=0;
			}
		} while(!sw);
	}
	
	for(i=1;i<=n;i++)
		if( strcmp(v[i], v[i-1]) && strcmp(v[i],v[i+1]) )
			k++;
		
	fprintf(g,"%d", k);	
	return 0;	
			
}