P13216 [GCJ 2015 #1A] Haircut
题目描述
你正在一家时尚理发店排长队等着理发。店里有 $B$ 位理发师,编号为 $1$ 到 $B$。第 $k$ 位理发师理一个顾客的头发恰好需要 $M_k$ 分钟,并且每位理发师一次只能为一位顾客服务。当理发师完成理发后,会立即空闲,可以为下一位顾客服务。
在理发店营业期间,队首的顾客总是会选择编号最小的空闲理发师。如果没有理发师空闲,该顾客会等待,直到至少有一位理发师空闲。
你是队伍中的第 $N$ 位顾客,理发店刚刚开门。请问哪位理发师会为你理发?
输入格式
输入的第一行为测试用例数 $T$。接下来有 $T$ 组测试用例,每组包含两行。第一行包含两个用空格分隔的整数 $B$ 和 $N$,分别表示理发师数量和你在队伍中的位置。队首顾客编号为 $1$,下一个为 $2$,以此类推。第二行包含 $M_1, M_2, \dots, M_B$,分别表示每位理发师理发所需的时间。
输出格式
对于每个测试用例,输出一行,格式为 "Case #$x$: $y$",其中 $x$ 是测试用例编号(从 $1$ 开始),$y$ 是为你理发的理发师编号。
说明/提示
**样例解释**
在第 1 组样例中,你是队伍中的第 4 位顾客,理发师 $1$ 和 $2$ 理发分别需要 $10$ 分钟和 $5$ 分钟。当理发店开门时,第一位顾客可以选择理发师 $1$ 或 $2$,她会选择编号最小的理发师 $1$。第二位顾客会立即由理发师 $2$ 服务。第三位顾客需要等待,因为没有空闲理发师。5 分钟后,理发师 $2$ 完成第二位顾客的理发,并为第三位顾客服务。10 分钟后,理发师 $1$ 和 $2$ 都完成了理发,你是下一个顾客,可以选择理发师 $1$ 或 $2$,你会选择 $1$。
**数据范围**
- $1 \leq T \leq 100$。
- $1 \leq N \leq 10^9$。
**小数据集(11 分)**
- 时间限制:5 秒。
- $1 \leq B \leq 5$。
- $1 \leq M_k \leq 25$。
**大数据集**
- 时间限制:10 秒。
- $1 \leq B \leq 1000$。
- $1 \leq M_k \leq 100000$。
由 ChatGPT 4.1 翻译