#P13216. [GCJ 2015 #1A] Haircut

[GCJ 2015 #1A] Haircut

Description

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

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

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

Input Format

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

Output Format

对于每个测试用例,输出一行,格式为 "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

Hint

样例解释

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

数据范围

  • 1T1001 \leq T \leq 100
  • 1N1091 \leq N \leq 10^9

小数据集(11 分)

  • 时间限制:5 秒。
  • 1B51 \leq B \leq 5
  • 1Mk251 \leq M_k \leq 25

大数据集

  • 时间限制:10 秒。
  • 1B10001 \leq B \leq 1000
  • 1Mk1000001 \leq M_k \leq 100000

由 ChatGPT 4.1 翻译