Cod sursa(job #2637348)

Utilizator euyoTukanul euyo Data 22 iulie 2020 16:21:58
Problema Restante Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <fstream>
#include <algorithm>
#include <cstring>

using namespace std;

ifstream fin( "restante.in" );
ofstream fout( "restante.out" );

const int MaxN = 36001;
const int MaxL = 17;

char s[MaxN][MaxL];
int code[MaxL];
int ind[MaxN];

int cmp( int a, int b ) {
  return strcmp( s[a], s[b] ) < 0;
}

int main() {
  int n, i, nr;
  
  fin >> n;
  for ( i = 0; i < n; ++i ) {
    fin >> s[i];
	ind[i] = i;
    for ( int j = 0; j < strlen( s[i] ); ++j ) {
	  code[j] = s[i][j] - 'a';
	}
	sort( code, code + strlen( s[i] ) );
	for ( int j = 0; j < strlen( s[i] ); ++j ) {
	  s[i][j] = code[j] + 'a';
	}
  }
  sort( ind, ind + n, cmp );
  nr = 0;
  if ( strcmp( s[ind[0]], s[ind[1]] ) ) {
    ++nr;
  }
  for ( i = 1; i < n - 1; ++i ) {
	if ( strcmp( s[ind[i]], s[ind[i - 1]] ) && strcmp( s[ind[i]], s[ind[i + 1]] ) ) {
      ++nr;
	}
  }
  if ( strcmp( s[ind[n - 1]], s[ind[n - 2]] ) ) {
	++nr;
  }
  fout << nr;
  fin.close();
  fout.close();
  return 0;
}