Cod sursa(job #662114)

Utilizator dutzulBodnariuc Dan Alexandru dutzul Data 15 ianuarie 2012 21:04:58
Problema Restante Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <fstream>
#include <algorithm>
#define l 37006
using namespace std;
ifstream f("restante.in");
ofstream g("restante.out");
string s;
int n,i,j,en,v[l][18],W[l],q,r,x1,x2;
int cmp(int x,int y)
{
  for(i=0; i<16; i++)
    {
      if (v[x][i]>v[y][i]) return x>y;
      if (v[x][i]<v[y][i]) return y>x;
    }
  return x>y;
}
int com(int x,int y)
{
  for(i=0; i<16; i++)
    if (v[x][i]!=v[y][i]) return -1;
  return 0;
}
int main()
{
  f>>n;
  for(i=1; i<=n; i++)
    {
      f>>s;
      en=s.length();
      for(j=0; j<en; j++) v[i][j]=s[j];
      sort(v[i],v[i]+en);
    }
  for(i=1; i<=n; i++) W[i]=i;
  sort(W+1,W+n+1,cmp);

  for(q=1; q<=n; q++)
    {
      x2=com(W[q],W[q-1]);
      x1=com(W[q],W[q+1]);
      if (x2==-1&&x1==-1)r++;
    }
  g<<r;



  f.close();
  g.close();
  return 0;
}