Cod sursa(job #662109)

Utilizator dutzulBodnariuc Dan Alexandru dutzul Data 15 ianuarie 2012 20:52:04
Problema Restante Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <fstream>
#include <algorithm>
#define l 36006
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;
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=2;q<=n;q++)
{
if (com(W[q],W[q-1])==-1&&com(W[q],W[q+1]==-1)) r++;
}
g<<r;
f.close();
g.close();
    return 0;
}