最近,发现了一道有趣的题目,正好在学STL,就拿出来给大家看看:
热血格斗场
总时间限制:1000Ms 内存限制 :65536kB
描述:为迎接08年的奥运会,让大家更加了解各种格斗运动,facer新开了一家热血格斗场.格斗场实行会员制,但是新来的会员不用交入会,而只要同一名老会员打一场表演赛,证明自己的实力.
假设格斗的实力可以用一个正整数表示,称为实力值,两人的实力值可以相同,另外,每一个人都 * 有一个唯一的ID,也是一个正整数.为了使得比赛更好看每一个新会员都会选择一个与他实力最为接近的人比赛,即比赛双方的实力值之差的绝对值越小越好,如果有多个人与他差别相同,则他会选择更弱的一个(显然,虐人总比被虐好).
不幸的是,Facer一不小心把比赛记录弄丢了,但他还是保留着会员的注册 记录.现在请你回复比赛记录,按照时间顺序依次*输出每场比赛双方的id *
输入:第一行一个数n(0 < n <100000),表示格斗场新来的会员数(不包括Facer). *
以后n行每一行两个数,按照入会的时间给出会员的id和实力值.一开始,Facer就算是会员,id为1,实力值1000000000. 输出:N行,每行两个数,为每场比赛双方的id,新手的id写在前面
读完了题目,我们可以知道,这题用
map
做简单一些,所以,写好的源代码如下:
#include <algorithm> //算法的英文
#include <iostream> //C++标准输入输出流
#include <sstream> //stringstream,string输入输出流
#include <map> //C++STL中的一个容器
using namespace std;
int
