Cod sursa(job #250131)

Utilizator zalmanDanci Emanuel Sebastian zalman Data 30 ianuarie 2009 11:04:07
Problema Restante Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.3 kb
#include<stdio.h>
#include<string.h>
#include<time.h>
#define fin "restante.in"
#define fout "restante.out"
#define L 36001
#define l 26
char v[L][l], aux[l], enter[l];
int n, i, j, count, sw, x, vf[L];

int poz(int ls, int ld);
void qsort(int ls,int ld)
{
 int p;
 if( ls < ld)
 {
  p = poz(ls,ld);
  qsort(ls,p-1);
  qsort(p+1,ld);
 }
}

int poz(int ls,int ld)
{
 int i,j,ii,jj,aux;
 char aux1[l];
 i=ls;
 j=ld;
 ii=0;
 jj=-1;
 while(i<j)
 {
  if( strcmp(v[i],v[j]) > 0 )
  {
   strcpy(aux1,v[i]);
   strcpy(v[i],v[j]);
   strcpy(v[j],aux1);
   aux=-ii;
   ii=-jj;
   jj=aux;
  }
 i+=ii;
 j+=jj;
 }
return i;
}

void sort_cuv(char s[])
{
 char aux;
  for(int i = 0 ; i<strlen(s) - 1; i++)
   for(int j = i+1; j<strlen(s); j++)
	if( s[i] > s[j])
	{
	  aux = s[i];
	  s[i] = s[j];
	  s[j] = aux;
	}
}
int main(void)
{
 freopen(fin, "r", stdin);
 freopen(fout, "w", stdout);

 scanf("%d", &n);
 gets(enter);
 for( i=1; i<=n; i++)
  {
	gets(v[i]);
	sort_cuv(v[i]);
  }

 qsort(1, n);
 x = 1;
 strcpy(v[0], v[1]);

 for( i = 0; i < n; i++)
  {
    if(!strcmp(v[i], v[i+1]))
     vf[x]++;
    else
     vf[++x]++;

  }

   for ( i = 1 ; i <= n ; i++)
    if(vf[i] == 1)
     count++;

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

 fcloseall();
 return 0;

}