AT_arc184_a.[ARC184A] Appraiser

普及+/提高

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

本题为交互式问题,且评测器为自适应(adaptive)。详情请参阅注意事项。
此外,题目中的参数固定为 N=1000,M=10,Q=950N=1000, M=10, Q=950。

有 NN 枚硬币,编号为 1,2,…,N1,2,\dots,N。
在这些硬币中,恰好有 MM 枚是假币。

鉴定师每次可以鉴定两枚硬币,判断它们是否为同一类型。具体来说:

  • 如果两枚硬币“都是正品”或“都是假币”,则判定为同种。
  • 否则,判定为异种。

请在不超过 QQ 次的鉴定内,找出所有假币。

输入格式

本题为交互式问题。
首先,从标准输入读入 N,M,QN, M, Q。

NN MM QQ

接下来,你可以进行 00 次或多次(最多 QQ 次)鉴定。

每次鉴定时,请按如下格式输出到标准输出,表示要鉴定硬币 x,yx, y。(末尾需换行)

? xx yy

其中,x,yx, y 是 11 到 NN 之间的不同整数。

评测器会返回以下三种之一的响应:

0

当响应为 0 时,表示硬币 x,yx, y 为同种。

1

当响应为 1 时,表示硬币 x,yx, y 为异种。

-1

当响应为 -1 时,表示鉴定无效。具体包括:

  • 输出的 x,yx, y 不满足约束条件
  • 鉴定次数超过 QQ 次

只要出现上述任一情况,评测器会返回 -1,此时你的程序已被判为不正确,请立即退出。

最后,请按如下格式输出,表示你认为硬币 A1,A2,…,AMA_1, A_2, \dots, A_M 是假币。(末尾需换行)

! A1A_1 A2A_2 …\dots AMA_M

其中,AiA_i 是 11 到 NN 之间的不同整数。
输出后,请立即退出程序。

注意,若输出格式不符合要求,也会被判为不正确。此后会返回 -1,此时也请立即退出程序。

输出格式

(同上,见输入格式)

说明/提示

约束条件

  • $ \color{red}{N = 1000} $
  • $ \color{red}{M = 10} $
  • $ \color{red}{Q = 950} $

注意事项

  • 每次输出后,需在末尾加换行并刷新标准输出。 否则可能会被判为 TLE 或 WA。
  • 输出答案后(或收到 -1 时)请立即退出程序,否则评测结果不确定。
  • 多余的换行也会被视为输出格式错误。
  • 本题评测器为自适应(adaptive)。也就是说,评测器可以在任何时刻,只要保证一致性,就可以更改其假币的设定。详见输入输出样例。

输入输出样例

本样例中 N=5,M=2,Q=10N=5, M=2, Q=10,评测器最初假定硬币 1,21,2 为假币。

注意,本样例不满足本题约束,仅用于说明,不会用于实际评测。

输入输出说明
5 2 10
给出 N,M,QN, M, Q。
? 1 2
鉴定硬币 1,21,2。
0
判定为同种。
? 1 3
鉴定硬币 1,31,3。
1
判定为异种。
? 1 4
鉴定硬币 1,41,4。
1
判定为异种。
! 1 2
输出 1,21,2 为假币。实际上,评测器最初假定 1,21,2 为假币,但假如 3,43,4 也能与之前的所有判定结果一致,评测器也可以将假币设定更改为 3,43,4。
因此,评测器有可能判定你的解答不正确。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页