码迷,mamicode.com
首页 > 编程语言 > 详细

C++ P2874 冷血格斗场

时间:2016-10-25 18:34:56      阅读:270      评论:0      收藏:0      [点我收藏+]

标签:stream   pen   int   const   str   freopen   printf   open   ret   

#include<iostream>
#include<cstdio>
#include<map>
#include<cmath>
using namespace std;
const int MAXN=1000000000;
int n,power,id,x,idx;
map<int,int>member;
map<int,int>::iterator bt;
int main()
{
    //freopen("test.in","r",stdin);
    //freopen("test.out","w",stdout);
    member[MAXN]=1;
    scanf("%d",&n);
    for(int i=1;i<=n;i++){
        scanf("%d%d",&id,&power);
        bt=member.lower_bound(power);
        if(bt==member.end()) bt--;
        x=abs(power-bt->first);
        idx=bt->second;
        if(bt!=member.begin()){
            bt--;
            if(x>abs(power-bt->first)||x==abs(power-bt->first)&&bt->second<idx)
                idx=bt->second;
        }
        printf("%d %d\n",id,idx);
        bt=member.find(power);
        if(bt==member.end()||bt->second>id) member[power]=id;
    }
    return 0;
}

//注释过一段时间再来加上;

C++ P2874 冷血格斗场

标签:stream   pen   int   const   str   freopen   printf   open   ret   

原文地址:http://www.cnblogs.com/Bear-Child/p/5997537.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!