Universal Cup Judging System

Universal Cup

Time Limit: 2.0 s Memory Limit: 512 MB Total points: 100 Interactive
Statistics

这是一个交互式问题。

Fischer 随机象棋(Fischer’s Chess)是一种起始位置从 960 种可能中随机选择的游戏。起始位置满足以下要求:

  • 白方棋子被打乱(国王、皇后、两只车、两只象和两只马被放置在第一行)。
  • 黑方棋子被放置在第八行,顺序与白方棋子相同。
  • 国王被放置在两只车之间(国王和车之间可以有其他棋子)。这是王车易位规则所必需的。
  • 白方两只象被放置在不同颜色的格子上。换句话说,一只象位于偶数列,另一只象位于奇数列。

Jill 选择了一个起始位置。Jack 的任务是猜出它。Jack 在棋盘上放置任何合法的起始位置,Jill 会告诉他有多少个白方棋子放置正确。你的任务是通过放置不超过六个位置来帮助 Jack 猜出该位置。

交互

交互过程包含不超过 100 局游戏。在每局游戏开始时,你需要从输入中读取一行,包含单词 “GAME” 和一个整数 $n$,对应游戏编号(从 1 开始)。

当尝试猜测位置时,输出一个由 8 个字符组成的字符串,表示白方棋子的排列。国王用字符 “K” 表示,皇后用 “Q” 表示,车用 “R” 表示,象用 “B” 表示,马用 “N” 表示。作为回应,从输入中读取一行,包含一个 0 到 8 之间的整数:表示放置正确的白方棋子数量。当你读取到数字 8(所有棋子放置正确)或超过猜测次数限制时,游戏结束(在这种情况下,如果程序立即终止,结果将是 “Wrong Answer”;如果程序尝试读取更多输入,结果可能是任何非 OK 的状态)。

在交互结束时,从输入中读取一行,包含单词 “END”。

输出每个位置后,请务必打印换行符并刷新输出缓冲区,否则结果将是 “Idleness Limit Exceeded”。要刷新缓冲区,例如在 C 或 C++ 中可以调用 fflush(stdout),在 Java 中调用 System.out.flush(),在 Pascal 中调用 flush(output),或者在 Python 中调用 sys.stdout.flush()

在每局游戏中,排列是预先固定且不会改变的。

样例

输入 1

GAME 1
4
3
5
8
END

输出 1

RQKBBNRN
RQKNBRNB
RKRNBBQN
RKRBBQNN

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.