Cod sursa(job #183211)

Utilizator Mishu91Andrei Misarca Mishu91 Data 21 aprilie 2008 20:39:04
Problema Restante Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
// Restante - Infoarena

#include <cstdio>
#include <string>
#include <algorithm>
#include <vector>

#define Nmax 36000

using namespace std;

vector <string> s;

int N;

void citire()
{
   char x[1000];
   scanf("%d",&N);

   for(int i=0; i<N; i++)
   {
     scanf("%s",&x);
     s.push_back(string(x));
   }
}

char viz[Nmax] ;

struct cmp
{
  bool operator()(const string &a, const string &b)
  {
    return (a < b);
  }
};

void solve()
{
  for(int i=0; i<N; i++)
    sort(s[i].begin(),s[i].end());

  sort(s.begin(),s.end(),cmp());

  int nr = N;

  for(int i=1; i<N; i++)
  {
    if(s[i-1] != s[i]) continue;

    if(viz[i-1] == 1)
    {
      nr--, viz[i] = 1;
      continue;
    }

    viz[i-1] = viz[i] = 1;
    nr -= 2;
  }

  printf("%d\n",nr);
}

int main()
{
  freopen("restante.in","r",stdin);
  freopen("restante.out","w",stdout);

  citire();
  solve();
}