AT_utpc2022_d.Balance
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
本题为交互题(你的程序需要和评测程序通过标准输入输出进行交互)。
你有 N 个砝码。已知第 i 个砝码的重量为 Pi,且 (P1,…,PN) 是 1 到 N 的一个排列,但 Pi 的具体值未知。此外,有一根标有 −2N 到 2N 之间整数刻度的杆,杆在位置 0 处被悬挂。每一个标线的位置都有一个孔,每个孔最多只能挂一个砝码。最初,杆上没有挂任何砝码,杆处于平衡状态。

zkou 君希望最终把手上的 N 个砝码全部挂到杆上,并且让杆保持平衡。你可以指示 zkou 君进行以下两种操作之一:
- 从手上的砝码中选择一个,将其挂到尚未有砝码的位置 x 的孔上。
- 从杆上取下一个已经挂着的砝码,放回手中。
每完成一个操作后,zkou 君会告诉你杆此时是向左倾斜、向右倾斜,还是处于平衡状态。请控制在 10000 次操作以内,将手中的 N 个砝码全部挂到杆上,并让杆平衡。可以证明,在题目的约束条件下,总存在这样的操作方案。
关于杆的倾斜和力矩定义:杆上已挂有 k 个砝码,第 j 个砝码的重量为 wj,挂在位置 xj,则杆的力矩 M=∑j=1kwjxj。若 M>0,则杆向右倾斜;若 M=0,则杆平衡;若 M<0,则杆向左倾斜。
输入格式
本题为交互题(你的程序需要和评测程序通过标准输入输出进行交互)。
首先,从标准输入读入 N。
N
接下来,在把手中的 N 个砝码全部挂上并让杆达到平衡之前,你可以用如下格式向 zkou 君输出指令:
如果选择手上第 i 个砝码,并将其挂到尚未有砝码的位置 x 上:
1 i x
其中,i,x 必须满足 1≤i≤N,−2N≤x≤2N。
如果将杆上已挂好的第 i 个砝码取下,放回手中:
2 i
其中,i 满足 1≤i≤N。
每个操作后,评测程序会通过标准输入反馈如下形式的结果:
S
其中 S 是下列字符串之一:
Right:操作后杆向右倾斜。Balanced:操作后杆达到平衡。Left:操作后杆向左倾斜。-1:输出不合法。
收到 -1 时,请立刻终止程序。导致输出不合法的常见原因如下:
- 输出格式不符。
- 指令次数超过上限。
- 向已经挂着的孔再挂砝码。
- 向手中还未挂的砝码发起取下操作。
- 向已挂有砝码的位置再挂其它砝码。
当你已将 N 个砝码全部挂到杆上,并且杆保持平衡,请输出一行 0 并立即退出程序。如果全部砝码已挂且杆平衡,则本题将判定为正确。
0
输出格式
如上描述,依操作输出指令,每条指令单独一行,结尾需换行,并及时刷新输出。
说明/提示
部分得分
- 若你能解决 1≤N≤100 的测试点,将获得 30 分。
注意事项
- 每次输出后请及时添加换行并刷新输出,否则可能因 TLE 被判为未通过。
- 若交互过程中出现非法输出或中途退出,评测结果为未定。
- 答案输出后(或收到
-1后)请立即正常退出程序,否则评测结果未定。 - 特别注意,不要输出多余的换行或空格,这也会被视为输出格式错误。
输入输出样例
以下为 N=2 且 (P1,P2)=(2,1) 时的交互样例。
| 输入 | 输出 | 说明 |
|---|---|---|
2 |
读入 N | |
1 2 -4 |
将第 2 个砝码挂到 −4 位置 | |
Left |
杆向左倾斜 | |
1 1 3 |
将第 1 个砝码挂到 3 位置 | |
Right |
杆向右倾斜 | |
2 1 |
取下第 1 个砝码 | |
Left |
杆向左倾斜 | |
1 1 2 |
将第 1 个砝码挂到 2 位置 | |
Balanced |
杆平衡 | |
0 |
所有砝码已挂、杆平衡,输出 0 并立即退出 |
输入格式
如上交互格式描述。
输出格式
如上交互格式描述。
提示
部分分数
- 对 1≤N≤100 的数据点,答对则得 30 分。
注意点
- 每次输出指令需要换行并刷新。
- 遇到任何非法指令反馈或检测到异常时应立即退出。
- 出现多余的空格或换行也会被判为格式错误。
约束条件
- 输入均为整数。
- 1≤N≤3000。
由 ChatGPT 5 翻译
输入解题思路,AI测评打分。不知道怎么写?