/**
* Problem: sicily 1022
* Description:
*
* Author: Wenzhu Luo @ Loen
* Date: 12.08.2012
*/
#include <iostream>
#include <string>
#include <string.h>
#include <set>
#include <cstdio>
using namespace std;
struct Contestant
{
int solve;
char name[15];
Contestant& operator = (Contestant b)
{
solve = b.solve;
strcpy(name,b.name);
name[strlen(b.name)] = '\0';
return *this;
}
};
struct cmp
{
bool operator ()(Contestant a, Contestant b)
{
return a.solve < b.solve;
}
};
int main()
{
int t;
scanf ("%d",&t);
while (t--)
{
set<Contestant,cmp> s;
char ins[15], name[15];
int num;
int counter = 0;
Contestant temp,mid;
set<Contestant>::iterator it;
bool flag1, flag2;
while (scanf ("%s",ins))
{
if (!strcmp(ins, "Add"))
{
scanf ("%s%d",name, &num);
strcpy(temp.name,name);
temp.name[strlen(name)] = '\0';
temp.solve = num;
s.insert(temp);
counter++;
if (counter == 1)
{
it = s.begin();
mid = *it;
}
else if (counter % 2 == 0)
{
if (temp.solve < mid.solve)
flag1 = true;
else
flag1 = false;
}
else if (counter % 2 != 0)
{
if (temp.solve < mid.solve)
flag2 = true;
else
flag2 = false;
if (flag1 && flag2)
{
it--;
mid = *it;
}
else if (!flag1 && !flag2)
{
it++;
mid = *it;
}
}
}
else if (!strcmp(ins, "Query"))
{
if (counter % 2 == 0)
printf ("No one!\n");
else
printf ("%s\n",mid.name);
}
else if (!strcmp(ins, "End"))
{
if (counter % 2 != 0)
{
printf ("%s is so poor.\n", mid.name);
}
else
printf ("Happy BG meeting!!\n");
break;
}
}
if (t > 0)
printf ("\n");
}
}
sicily 1022 Poor contestant Prob
最新推荐文章于 2015-03-21 08:48:10 发布