Cod sursa(job #159537)

Utilizator Mishu91Andrei Misarca Mishu91 Data 14 martie 2008 11:02:19
Problema Restante Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <cstdio>
#include <algorithm>
#define Nmax 36003
#include <string.h>

FILE *fin=freopen("restante.in","r",stdin),
     *fout=freopen("restante.out","w",stdout);

using namespace std;

char A[Nmax][20];

unsigned int viz[Nmax];

int cmp(int a,int b)
{
  return strcmp(A[a],A[b]);
}

int n;

void citire()
{
  scanf("%d",&n);
  
  fgetc(fin);
  
  for(int i=0; i<n; i++)
    scanf(" %s",A[i]);
}

void solve()
{
  for(int i=0; i<n; i++)
    sort(A[i],A[i] + strlen(A[i]));
   
  /*for(int i=0; i<n; i++)
    printf("%s\n",A[i]);*/
    
  int b[Nmax];
  for(int i=0; i<n; i++)
    b[i] = i;
  sort(b,b+n,cmp);
  
  int nr = n;
  
  for(int i=0; i<n-1; i++)
    if(viz[b[i]] == 0)
      if(strcmp(A[b[i]],A[b[i+1]]) == 0)
        viz[b[i]] = viz[b[i+1]] =1, nr-=2;
  printf("%d\n",nr);
}

int main()
{
  citire();
  solve(); 
  return 0;
}