Cod sursa(job #247033)

Utilizator zalmanDanci Emanuel Sebastian zalman Data 21 ianuarie 2009 23:54:25
Problema Restante Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <stdio.h>
#include <string.h>
#include <algorithm>

using namespace std;

char v[361][20];
int n, number, i;

void swap( char &x, char &y)
{
 char aux;
 aux = x;
 x = y;
 y = aux;
}

void quicksort(char a[], int l, int r)
{
 int i = l-1, j = r;
 char v = a[r];
 if( r <= l )
  return;
 for( ; ; )
 {
  while ( a[++i] <  v );
  while ( v < a[--j] )
   if( j == l)
	break;
   if( i >= j)
	break;
  swap(a[i], a[j]);

 }

 swap( a[i], a[r]);
 quicksort( a, l, i-1);
 quicksort( a, i+1, r);
}
int main(void)
{
	freopen("restante.in","r",stdin);
	freopen("restante.out","w",stdout);

	scanf("%d", &n);
	for( i = 1; i <= n; i++)
	{
		gets(v[i]);
		quicksort(v[i], 0, strlen(v[i])-1);
	}

	sort(v+1, v+1+n);

	for( i=1; i<n;i++)
		if(strcmp(v[i], v[i+1]))
			 number++;

	  printf("%d\n", number);
	  fcloseall();
	  return 0;
}