本文主要是介绍HDU 4585,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
//也是个水题,不过以前没用过set。。。。所以逼着我去学。
#include<iostream>
#include<string>
#include<map>
#include<set>
#include<algorithm>
#include<stdlib.h>
using namespace std;
set<int> my_set;
map<int,int> my_map;
int main(){
int n;
while(scanf("%d",&n),n){
my_set.clear();
my_map.clear();
my_set.insert(1000000000);
my_map[1000000000]=1;
for(int i=0;i<n;i++){
int k,g;
scanf("%d%d",&k,&g);
set<int>::iterator iter=my_set.lower_bound(g);
if(iter==my_set.begin()){
//int t=*iter;
printf("%d %d\n",k,my_map[*iter]);
}
else if(iter==my_set.end()){
iter--;
printf("%d %d\n",k,my_map[(*iter)]);
}
else{
int tmp=(*iter);
iter--;
if(tmp-g>=g-(*iter)){
printf("%d %d\n",k,my_map[(*iter)]);
}
else{
printf("%d %d\n",k,my_map[tmp]);
}
}
my_set.insert(g);
my_map[g]=k;
}
}
}
这篇关于HDU 4585的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!