Cod sursa(job #610437)

Utilizator stocarulCosmin-Mihai Tutunaru stocarul Data 27 august 2011 10:36:14
Problema Restante Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include<cstdio>
#include<vector>
#include<string>
#include<algorithm>
#define infile "restante.in"
#define outfile "restante.out"
#define lgMax 31

using namespace std;

vector <string> v;
char buff[lgMax];
int n, res;

string makeString(char v[]) {
  string str;
  for(int i = 0; v[i] >= 'a' && v[i] <= 'z'; ++i)
    str.push_back(v[i]);
  return str;
}

void read() {
  scanf("%d\n", &n);
  for(int i = 1; i <= n; ++i) {
    scanf("%s\n", buff);
    v.push_back(makeString(buff));
  }
}

void solve() {

  for(unsigned i = 0; i < v.size(); ++i)
    sort(v[i].begin(), v[i].end());

  sort(v.begin(), v.end());

  for(unsigned i = 0; i < v.size(); ++i)
    if(i+1 == v.size() || v[i] != v[i+1])
      res++;
    else {
      while(i+1 < v.size() && v[i] == v[i+1]) ++i;
    }
}

void write() {
  printf("%d\n", res);
}

int main() {
  freopen(infile, "r", stdin);
  freopen(outfile, "w", stdout);

  read();
  solve();
  write();

  fclose(stdin);
  fclose(stdout);
  return 0;
}