CF1267I.Intriguing Selection

省选/NOI-

通过率:0%

AC君温馨提醒

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

题目描述

这是一个交互式问题。

你是一家国际象棋俱乐部的主教练。俱乐部有 2n2n 名选手,每位选手都有一个用数字表示的实力值,且所有这些数字都互不相同。你并不知道这些选手的实力值。

你需要从中选出 nn 名选手,代表你的俱乐部参加即将到来的锦标赛。很自然地,你希望选出实力最强的 nn 名选手。

为此,你可以安排选手之间进行对局。在每一场对局中,你选择两名选手,他们进行比赛,你可以得知这两人中谁的实力更强。在决定下一场对局的参赛选手之前,你可以等待上一场比赛的结果。

然而,你并不希望完全了解这 nn 名选手之间的强弱关系,因为那样会让锦标赛本身变得不那么有趣。更正式地说,你必须让比赛结果达到这样一种状态:只有一种方式可以选出实力最强的 nn 名选手,并且根据你组织的比赛结果,关于这 nn 名选手的实力顺序,至少存在两种可能的排列。

输入格式

你的程序需要在一次运行中处理多个测试用例。首先,读取整数 tt(t≥1t \ge 1)——表示测试用例的数量。然后,依次处理每个测试用例。

在每个测试用例中,你的程序首先读取整数 nn(3≤n≤1003 \le n \le 100)——表示需要从 2n2n 名选手中选出 nn 名选手。所有测试用例中 nn 的平方和不超过 10 00010\,000。

接下来,你可以安排零场或多场对局。每安排一场对局,你需要输出一行格式为 ? ii jj 的描述——问号后跟两名参赛选手的编号。选手编号从 1 到 2n2n。输出对局描述后,记得刷新输出流。然后,你需要读取比赛结果——如果第一名选手实力更强,结果为大于号(>);如果第二名选手实力更强,结果为小于号(<)。

你最多可以安排 4n24n^2 场对局。安排完所有对局后,你需要输出一行感叹号(!),然后继续下一个测试用例。如果这是最后一个测试用例,则正常退出。输出感叹号后记得刷新输出流。

你组织的比赛结果必须保证:只有一种方式可以选出实力最强的 nn 名选手,并且关于这 nn 名选手的实力顺序,至少存在两种可能的排列。

评测程序会在你的程序开始安排比赛前,为所有选手分配互不相同的实力值,并据此回答你的比赛请求。

输出格式

你的程序需要在一次运行中处理多个测试用例。首先,读取整数 tt(t≥1t \ge 1)——表示测试用例的数量。然后,依次处理每个测试用例。

在每个测试用例中,你的程序首先读取整数 nn(3≤n≤1003 \le n \le 100)——表示需要从 2n2n 名选手中选出 nn 名选手。所有测试用例中 nn 的平方和不超过 10 00010\,000。

接下来,你可以安排零场或多场对局。每安排一场对局,你需要输出一行格式为 ? ii jj 的描述——问号后跟两名参赛选手的编号。选手编号从 1 到 2n2n。输出对局描述后,记得刷新输出流。然后,你需要读取比赛结果——如果第一名选手实力更强,结果为大于号(>);如果第二名选手实力更强,结果为小于号(<)。

你最多可以安排 4n24n^2 场对局。安排完所有对局后,你需要输出一行感叹号(!),然后继续下一个测试用例。如果这是最后一个测试用例,则正常退出。输出感叹号后记得刷新输出流。

你组织的比赛结果必须保证:只有一种方式可以选出实力最强的 nn 名选手,并且关于这 nn 名选手的实力顺序,至少存在两种可能的排列。

评测程序会在你的程序开始安排比赛前,为所有选手分配互不相同的实力值,并据此回答你的比赛请求。

输入输出样例

  • 输入#1

    2
    3
    
    >
    
    <
    
    >
    
    <
    
    >
    
    >
    
    3
    
    <
    
    <
    
    <
    
    >
    
    >

    输出#1

    
    
    ? 1 3
    
    ? 4 2
    
    ? 4 5
    
    ? 6 5
    
    ? 3 4
    
    ? 5 6
    
    !
    
    ? 3 4
    
    ? 4 2
    
    ? 5 3
    
    ? 6 4
    
    ? 3 1
    
    !
    

说明/提示

在示例中,第一个测试用例中的选手按实力从高到低排序。根据示例输出中的比赛结果,我们可以推断出选手 1、2 和 3 是实力最强的三人,但我们无法确定选手 1 和选手 2 之间的强弱关系。

由 ChatGPT 4.1 翻译

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

首页