#6629. 善良的牛肉好

善良的牛肉好

本题为交互题

本题为防AK高难题,建议最后再做

题目背景

​ 牛肉好很善良希望大家都有机会能加入SWPU-ACM,所以牛肉好在纸上写了一个数字,如果你猜到了那你就可以加入SWPU-ACM

规则如下:

  • 牛肉好会提前写下一个数字X,保证在你猜测过程中不会更改,X为不重复的4位数字,每位数字为(0-9),首位可以是0
  • 你可以多次猜测这个数字是什么,但保证每次猜测必须是四位数字,猜测总次数不能超过7次
  • 每次猜测牛肉好都会告诉你两个数字a,b,a表示你猜测数字准确且位置正确的数的个数,b表示你猜测数字正确但位置不正确的个数
  • 比如答案是2476你猜的是7461,第二位数字是4你猜对了且位置也正确,所以a=1,而7、6两个数字对了但是位置没对所以b=2

注意: 给出的四位数字每一位都不重复,所以理应你的猜测不应该出现重复数字,但是如果你这么做了比如X='1234',但是你猜测'1233'那会返回{a=3,b=1},前三位相同所以a=3没有争议,你猜测的第四位为3数字正确但是位置不对理应b=1

数据范围

X为不重复四位数字,猜测总次数不能超过7次,保证7次内一定有解

交互格式

本题为交互题,请从附件下载交互库,调用guessnumber.h进行交互,具体地,交互命令有以下三种。

  • void start() 表示游戏开始我会在纸上写好一个四位不重复数字并且保证游戏过程中不会改变。你应当在程序一开始调用此函数,并仅调用一次。

  • vector<int> query(string x) 猜测四位数字,参数为形如"0123"的字符串,该函数会返回一个含有两个数字的vector,两个数字为a,b意义为题目所述,该函数只能调用不超过7次。

  • void submit(string x) 提交你的答案,在此之后你不应当进行任何交互操作。

样例

比如X='1234'

1937
2456
1234
2 0
0 2
4 0

附件

链接:https://pan.baidu.com/s/1IKZ2wCXP1PKm1Z4R6srFIw?pwd=2476 提取码:2476