Cod sursa(job #288899)

Utilizator AnDrEwBoYA Andrei AnDrEwBoY Data 26 martie 2009 10:40:01
Problema Restante Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.1 kb
#include<stdio.h>
#include <stdlib.h>

int len(char *p)
{
    return (*p ? 1 + len(++p) : 0);
}

void qsort(char* v,int st,int dr)
{
   int mijl,aux,max,min;
   max = dr; min = st;
   mijl = v[st+(dr-st)/2];
   
   do
   {
      while(v[min] < mijl) min++;
      while(v[max] > mijl) max--;
      if(min <= max)
      {
         aux = v[min];
         v[min++] = v[max];
         v[max--] = aux;    
      }    
   }while(min <= max);
   if(st < max) qsort(v,st,max);
   if(min < dr) qsort(v,min,dr);        
}
int main()
{
    long n,i,j,k = 0,ok;
    char (*lit)[16] = new char[36000][16];
    freopen("restante.in","r",stdin);
    freopen("restante.out","w",stdout);
    
    scanf("%ld",&n);
    for(i = 0; i < n; i++)
    {
       scanf("%s",lit[i]);  
       qsort(lit[i],0,len(lit[i])-1);
    }                    
    
    for(i = 0; i < n; i++)
    {
      ok = 1;
      for(j = i+1; j < n; j++)
        if(len(lit[i]) == len(lit[j]))
          ok = 0;
      if(ok) k++;
    }     
    printf("%ld",k);     
    fclose(stdin); fclose(stdout);
    return 0;
}