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 翻译