#include<bits/stdc++.h>
using namespace std;
set<pair<int,int>> a;
int main() {
int n,power,id;
scanf("%d",&n);
a.insert(make_pair(10000000,1));
set<pair<int,int>>::iterator it,it1,it2,it3;
for(int i=0; i<n; i++) {
scanf("%d%d",&id,&power);
pair<int,int> p(power,id);
a.insert(p);
it=a.lower_bound(p);//它自己
it1=a.upper_bound(p);//第一个大于它的(一定存在)
if(it==a.begin()) { //没有比它更小的和相等的 bc
printf("%d %d\n",it->second,it1->second);
}
else {
it3=it;
it3--;//它的前一个元素,要找和这个元素power相同的里,id最小的
if(a.begin()->first==it3->first) it2=a.begin();
else{
it2=it3;
while(it2->first==it3->first) it2--;
it2++;
}
int s1=abs(it2->first-it->first),s2=abs(it1->first-it->first);
if(s1<s2) printf("%d %d\n",it->second,it2->second);
else if(s1==s2) printf("%d %d\n",it->second,min(it1->second,it2->second));
else printf("%d %d\n",it->second,it1->second);
}
}
}
POJ冷血格斗场
最新推荐文章于 2021-03-21 20:13:24 发布