#P13216. [GCJ 2015 #1A] Haircut

    ID: 15086 远端评测题 5000~10000ms 1024MiB 尝试: 0 已通过: 0 显示难度普及 上传者: 标签>2015二分Google Code Jam

[GCJ 2015 #1A] Haircut

题目描述

你正在一家时尚理发店排长队等着理发。店里有 BB 位理发师,编号为 11 到 BB。第 kk 位理发师理一个顾客的头发恰好需要 MkM_k 分钟,并且每位理发师一次只能为一位顾客服务。当理发师完成理发后,会立即空闲,可以为下一位顾客服务。

在理发店营业期间,队首的顾客总是会选择编号最小的空闲理发师。如果没有理发师空闲,该顾客会等待,直到至少有一位理发师空闲。

你是队伍中的第 NN 位顾客,理发店刚刚开门。请问哪位理发师会为你理发?

输入格式

输入的第一行为测试用例数 TT。接下来有 TT 组测试用例,每组包含两行。第一行包含两个用空格分隔的整数 BB 和 NN,分别表示理发师数量和你在队伍中的位置。队首顾客编号为 11,下一个为 22,以此类推。第二行包含 M1,M2,…,MBM_1, M_2, \dots, M_B,分别表示每位理发师理发所需的时间。

输出格式

对于每个测试用例,输出一行,格式为 "Case #xx: yy",其中 xx 是测试用例编号(从 11 开始),yy 是为你理发的理发师编号。

3
2 4
10 5
3 12
7 7 7
3 8
4 2 1
Case #1: 1
Case #2: 3
Case #3: 1

提示

样例解释

在第 1 组样例中,你是队伍中的第 4 位顾客,理发师 11 和 22 理发分别需要 1010 分钟和 55 分钟。当理发店开门时,第一位顾客可以选择理发师 11 或 22,她会选择编号最小的理发师 11。第二位顾客会立即由理发师 22 服务。第三位顾客需要等待,因为没有空闲理发师。5 分钟后,理发师 22 完成第二位顾客的理发,并为第三位顾客服务。10 分钟后,理发师 11 和 22 都完成了理发,你是下一个顾客,可以选择理发师 11 或 22,你会选择 11。

数据范围

  • 1≤T≤1001 \leq T \leq 100。
  • 1≤N≤1091 \leq N \leq 10^9。

小数据集(11 分)

  • 时间限制:5 秒。
  • 1≤B≤51 \leq B \leq 5。
  • 1≤Mk≤251 \leq M_k \leq 25。

大数据集

  • 时间限制:10 秒。
  • 1≤B≤10001 \leq B \leq 1000。
  • 1≤Mk≤1000001 \leq M_k \leq 100000。

由 ChatGPT 4.1 翻译