你拥有一家棒棒糖店。在一天开始时,你制作了 $N$ 支棒棒糖,每支都有独特的口味,例如越橘、樱桃或青柠。一天中会有 $N$ 位顾客依次进店。每位顾客会给你一份他们喜欢的棒棒糖口味列表。你可以卖给他们其中任意一种口味的棒棒糖,前提是你当天还没有把这种口味卖给别人(因为每种口味只有一支棒棒糖)。如果他们喜欢的口味都已经卖完了,你就无法卖给他们棒棒糖,他们会失望地离开你的店。
在顾客进店之前,你不知道他们的口味偏好。每位顾客是否喜欢某种口味是随机决定的,且与其他口味的喜好以及其他人的喜好无关。然而,市场研究表明,某些口味被大众喜欢的概率可能更高!例如,青柠口味被某位特定顾客喜欢的概率可能是 $10\%$,而樱桃口味的概率可能是 $1\%$。这些概率值是在区间 $[0.005, 0.1]$ 内独立且均匀随机选择的。
显然,你希望尽可能多地卖出棒棒糖给这 $N$ 位顾客!但是,由于你无法预知顾客的需求,你并不总能做出最优决策——有时你可能卖给了一位顾客某种口味,后来却希望当时卖的是另一种。
假设你预先知道所有顾客的偏好并能提前规划,那么你最多可以卖出 $M$ 支棒棒糖。虽然你无法预知顾客的偏好,但我们要求你在每个测试用例中卖出的棒棒糖数量至少达到 $M$ 的 $90\%$。
输入格式
这是一个交互式问题,这意味着输入和输出的概念与标准 Code Jam 问题不同。你将与一个单独的进程进行交互,该进程既为你提供信息,也评估你的回答。所有信息通过标准输入进入你的程序;你需要传达的任何内容都应通过标准输出发送。请记住,许多编程语言默认会对输出进行缓冲,因此请确保在阻塞等待响应之前,你的输出确实已发送(例如,通过刷新缓冲区)。通过标准错误发送的任何内容都会被忽略,但它可能会消耗一些内存并计入你的内存限制,因此请不要溢出它。
首先,你的程序应读取一行,包含一个整数 $T$,表示测试用例的数量。然后,你需要处理 $T$ 个测试用例。
对于每个测试用例,你的程序应读取一行,包含一个整数 $N$,即棒棒糖的数量(也等于顾客的数量)。
然后,对于每一位顾客,你的程序应读取一行,其中包含以空格分隔的整数。第一个整数 $D$ 是该顾客喜欢的口味数量。随后是 $D$ 个整数,即这些口味的 ID,按严格递增顺序排列。口味 ID 的范围是 $[0, N - 1]$。注意,对于某些或所有顾客,$D$ 可能为零。
在读取每一行后,你的程序必须向标准输出写入一行,包含要卖给该顾客的口味 ID,如果不想卖给该顾客任何棒棒糖,则输出 $-1$。
在为该测试用例写入第 $N$ 行后,如果这是最后一个测试用例,你的程序应终止;否则,它应开始读取下一个测试用例的数据。
如果你的程序出现错误(例如,试图卖给顾客一种已经卖出的口味,或者试图卖给顾客一种他们不喜欢的口味,或者使用了错误的输出格式,或者输出了越界的值),评测机将向你的输入流发送 $-1$,并且之后不会发送任何其他输出。如果你的程序在收到 $-1$ 后继续等待评测机,你的程序将超时,导致“超出时间限制”(Time Limit Exceeded)错误。请注意,你有责任让你的程序及时退出以接收适当的判决(错误答案、运行时错误等),而不是“超出时间限制”错误。通常情况下,如果总时间或内存超出限制,或者你的程序出现运行时错误,你将收到相应的判决。在一个测试用例中卖出的棒棒糖数量不足不会导致你收到 $-1$ 消息。
在处理完所有测试用例后,你不应向评测机发送额外信息。换句话说,如果你的程序在最后一个测试用例之后继续向标准输出打印内容,你将得到“错误答案”(Wrong Answer)判决。
说明
在每个测试用例开始时,评测机将确定所有顾客的偏好。也就是说,它将使用一个(隐藏的)概率列表 $P_i$(每个口味一个,介于 $0.005$ 和 $0.1$ 之间);每位顾客有 $P_i$ 的概率喜欢第 $i$ 种口味。也就是说,表示顾客 $j$ 是否喜欢口味 $i$ 的随机变量是独立同分布的。这些偏好在整个测试过程中是恒定的,不会因你的选择而改变。
样例
样例输入 1
10 4 1 2 0 1 2 2 1 3 1 1 0 5 2 1 3 2 1 2 -1
样例输出 1
2 -1 -1 3 -1 1 1
测试工具
你可以使用测试工具在本地或我们的平台上进行测试。要在本地测试,你需要将该工具与你的代码并行运行;你可以使用我们的交互式运行器(interactive runner)来实现。有关更多信息,请阅读该文件中的注释,并查看常见问题解答(FAQ)中的“交互式问题”部分。
测试工具的说明包含在工具内部的注释中。我们鼓励你添加自己的测试用例。请注意,虽然测试工具旨在模拟评测系统,但它不是真正的评测系统,其行为可能有所不同。如果你的代码通过了测试工具但在真正的评测机上失败,请检查常见问题解答(FAQ)的“编码”部分,确保你使用的编译器与我们相同。