CF1773I.Interactive Factorial Guessing

省选/NOI-

通过率:0%

AC君温馨提醒

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

题目描述

哦不,这个狡猾的评测系统又对你隐瞒了一些信息,你需要通过交互的方式来猜测它。

这一次,你需要找出一个整数 nn。为此,你最多可以进行 10 次查询,查询的形式为:“n!n!(即从 1 到 nn 的所有整数的乘积,也称为阶乘)的第 kk 个十进制数字是多少?”。

输出格式

第一行包含一个整数 tt(1≤t≤1001 \le t \le 100),表示你需要处理的测试用例数量。

对于每个测试用例,整数 nn 已经被预先选定。n!n! 的长度最多为 20 00020\,000,因此 1≤n≤59821 \le n \le 5982。

你最多可以进行 10 次查询,查询的形式为 "? kk"(0≤k<20 0000 \le k < 20\,000)。对于每次查询,你将得到一个数字——n!n! 的第 kk 个十进制数字(返回值在 0 到 9 之间)。数字从 0 开始编号,0 表示最低位。如果 n!n! 太短,没有第 kk 个数字,则返回 0。

当你的程序确定了 nn 的值后,应输出 "! nn"。如果答案正确,你将收到 "YES",然后进入下一个测试用例,或者如果已经是最后一个测试用例则终止。如果答案不正确,或者你尝试猜测时存在多个与已知信息一致的可能答案,你将收到 "NO"。此时,你的提交将立即被判为“Wrong answer”,程序应立即终止。

输入输出样例

  • 输入#1

    2
    
    1
    
    YES
    
    0
    
    2
    
    YES

    输出#1

    ? 0
    
    ! 1
    
    ? 0
    
    ? 19997
    
    ! 5982

说明/提示

由 ChatGPT 4.1 翻译

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

首页