#aBC313D. [ABC313D] Odd or Even

[ABC313D] Odd or Even

AT_abc313_d [ABC313D] Odd or Even

题目描述

本题是一个交互式问题(你的程序需要与评测系统通过输入输出进行交互)。

给定整数 NN 以及小于 NN奇数 KK
评测系统隐藏了一个由 0011 组成的长度为 NN 的数列 A=(A1,A2,,AN)A = (A_1, A_2, \dots, A_N)

你无法直接知道数列 AA 的元素值。
但你可以最多进行 NN 次如下询问:

  • 选择 11NN 之间的 KK 个互不相同的整数 x1,x2,,xKx_1, x_2, \dots, x_K,询问 Ax1+Ax2++AxKA_{x_1} + A_{x_2} + \dots + A_{x_K} 的奇偶性。

请在不超过 NN 次询问内,唯一确定 (A1,A2,,AN)(A_1, A_2, \dots, A_N),并输出答案。
注意,评测系统是自适应的。换句话说,评测系统可以在不与之前所有询问的回答矛盾的前提下,自由更改 AA 的内容。
因此,只有当输出满足以下条件时,你的程序才会被判定为正确,否则判为错误:

  • 经过所有询问后,只有唯一一个与所有回答都不矛盾的数列,并且该数列与你输出的数列一致。

输入格式

本题为交互式问题(你的程序需要与评测系统通过输入输出进行交互)。

首先,你需要从标准输入读取 NNKK

N KN\ K

接下来,你可以不断进行询问,直到能够唯一确定 (A1,A2,,AN)(A_1, A_2, \dots, A_N)
每次询问,请按如下格式输出到标准输出,其中 x1,x2,,xKx_1, x_2, \dots, x_K11NN 之间互不相同的 KK 个整数:

? x1x_1 x2x_2 \dots xKx_K

对于每次询问,评测系统会返回如下格式的响应:

TT

其中 TT 的含义如下:

  • TT0,表示 Ax1+Ax2++AxKA_{x_1} + A_{x_2} + \dots + A_{x_K} 为偶数;
  • TT1,表示 Ax1+Ax2++AxKA_{x_1} + A_{x_2} + \dots + A_{x_K} 为奇数。

如果 x1,x2,,xKx_1, x_2, \dots, x_K 不满足约束,或者询问次数超过 NN 次,则 TT-1

如果评测系统返回 -1,你的程序已被判为错误,请立即退出程序。

当你唯一确定了 AA 的所有元素后,请按如下格式输出答案,并立即退出程序:

! A1A_1 A2A_2 \dots ANA_N

输出格式

见输入格式说明。

说明/提示

约束条件

  • 1K<N10001 \leq K < N \leq 1000
  • KK 是奇数
  • AiA_i0011

注意事项

  • 每次输出后请在末尾加上换行并刷新标准输出,否则可能会被判为 TLE。
  • 如果在交互过程中输出格式错误或程序中途退出,评测结果不确定。
  • 输出答案后请立即退出程序,否则评测结果不确定。
  • 评测系统是自适应的,即它可以在不与之前所有回答矛盾的前提下随时更改 AA 的内容。

输入输出样例

以下为 N=5,K=3N=5, K=3 时的输入输出示例。按照此示例输出会被判为 WA,请注意。
在此示例中,程序输出的 A=(1,0,1,1,0)A = (1, 0, 1, 1, 0) 是与所有询问结果不矛盾的一个数列,但例如 (0,0,1,0,0)(0, 0, 1, 0, 0) 也同样不矛盾,因此 AA 并未唯一确定,所以判为错误。

输入 输出 说明
5 3 首先给出整数 NNKK
? 2 4 1 (x1,x2,x3)=(2,4,1)(x_1, x_2, x_3) = (2, 4, 1) 进行询问。
0 询问的答案为 00,评测系统返回该值。
? 5 3 2 (x1,x2,x3)=(5,3,2)(x_1, x_2, x_3) = (5, 3, 2) 进行询问。
1 询问的答案为 11,评测系统返回该值。
! 1 0 1 1 0 输出 AA 的答案为 (1,0,1,1,0)(1, 0, 1, 1, 0)。由于 AA 未唯一确定,判为 WA。

由 ChatGPT 4.1 翻译