Directorio de artículos
Enlace de blog especial
Titulo original
Implementación de código (900ms)
#include <iostream>
#include <string>
#include <map>
#include <cmath>
using namespace std;
typedef map<int,int> mmii;
int main()
{
int members,id,attack;
cin>>members;
string func;
mmii boxingmap;
mmii::iterator p1,p2;
boxingmap.insert(make_pair(1000000000,1));
while(members--)
{
cin>>id>>attack;
p1 = boxingmap.lower_bound(attack);
p2 = boxingmap.upper_bound(attack);
if(p1 == boxingmap.begin() || abs((--p1)->first-attack) > abs(p2->first-attack)) p1 = p2;
cout<<id<<' '<<p1->second<<endl;
boxingmap.insert(make_pair(attack,id));
}
return 0;
}