HDU4329

#include<cstdio>
#include<algorithm>
#include<map>
using namespace std;
int main()
{
    map<int ,int>mp;
    int n;
    while(~scanf("%d",&n)&&n)
    {
        int id,fg;
        mp[1000000000]=1;
        for(int i=0; i<n; i++)
        {
           scanf("%d %d",&id,&fg);
            mp[fg]=id;
            map<int ,int>::iterator it=mp.find(fg),it1;
            if(it==mp.begin())
                printf("%d %d\n",id,(++it)->second);
            else
            {
                it1=it;
                if(abs((--it)->first-fg)<=abs((++it1)->first-fg))
                    printf("%d %d\n",id,(it)->second);
                else
                  printf("%d %d\n",id,(it1)->second);

            }
        }
        mp.clear();

    }
    return 0;
}

map是有序的好处

时间: 2024-10-03 16:51:06

HDU4329的相关文章

map我觉得非水题-hdu-4329

这个题目真是考验我的英语能力,我弄了2小时才弄懂题目的意思,后来打代码,根据别人的思维打的,因为一开始看不懂题目,就死抠,查了好久没一个负责的,题解一句话:题目怎么说我就怎么打.这题解未免太机智了,我要知道题目意思,还看你作甚.写了好多注释,有一点还是很模糊,getchar()我觉得没啥用,但是不打它就过不了.还有那个排序的东西,为啥需要它呢,我也不是很明了,学长啊,求大腿,实在不行,小腿我也不嫌弃.帮我理解一下题目了. # include <iostream> # include <c