/ Vijos / 题库 /

排队取款

排队取款

时间限制:1秒  内存限制:256M


【问题描述】

  银行规定了一种新的取款制度:一人一卡制,即如果某个人要同时从两张卡中取款,那么他从第一张中取完后,必须排到队尾,第二次轮到他的时候才能再次取款。多张卡的话,以此类推。
  现在给出每一个人的来银行的时刻(分钟)和他的卡数;假设从每一张卡取款的用时都是2分钟,求出时间最长的人的号码和时间(一个人的时间为他来银行到他离开银行的时间)。
  注意,若某人取完一张卡的款,准备排到队尾去等待办理另一张卡的业务时,同一时刻又来了一个新人,则新人应排在该人的前面。

【输入格式】

  每行两个自然数 \(a,c\),\(a\) 表示某人的来银行的时刻,单位分钟。\(c\) 表示这个人的卡数。最后用两个 0 结尾。数据已经按照人们来银行的时刻排好了顺序,且按这个顺序对每个人编号为 \(1,2,3,……\)。
  注意:输入中不会有同一时刻多人同时到达银行的情况。

【输出格式】

  输出两个自然数,前一个表示在银行时间最长的人的编号(若有多个则输出编号最小的一个),后一个表示这个人的在银行的时间。

【输入输出样例】

 Input

1 1
5 1
8 2
10 1
13 1
0 0

 Output

3 6

【数据限制】

  \(1≤a≤1000000\)
  \(1≤c≤5\)
  输入的数据中不超过 \(100000\) 人。

【来源】

  Mr.he

信息

ID
1043
难度
3
分类
数据结构 | 队列模拟 点击显示
标签
(无)
递交数
2
已通过
1
通过率
50%
被复制
3
上传者