CF753C.Interactive Bulls and Cows (Hard)

普及/提高-

通过率:0%

AC君温馨提醒

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

题目描述

The only difference from the previous problem is the constraint on the number of requests. In this problem your program should guess the answer doing at most 7 requests.

This problem is a little bit unusual. Here you are to implement an interaction with a testing system. That means that you can make queries and get responses in the online mode. Please be sure to use the stream flushing operation after each query's output in order not to leave part of your output in some buffer. For example, in C++ you've got to use the fflush(stdout) function, in Java — call System.out.flush(), and in Pascal — flush(output).

Bulls and Cows (also known as Cows and Bulls or Pigs and Bulls or Bulls and Cleots) is an old code-breaking paper and pencil game for two players, predating the similar commercially marketed board game Mastermind.

On a sheet of paper, the first player thinks a secret string. This string consists only of digits and has the length 44 . The digits in the string must be all different, no two or more equal digits are allowed.

Then the second player tries to guess his opponent's string. For every guess the first player gives the number of matches. If the matching digits are on their right positions, they are "bulls", if on different positions, they are "cows". Thus a response is a pair of numbers — the number of "bulls" and the number of "cows". A try can contain equal digits.

More formally, let's the secret string is ss and the second player are trying to guess it with a string xx . The number of "bulls" is a number of such positions ii ( 1<=i<=41<=i<=4 ) where s[i]=x[i]s[i]=x[i] . The number of "cows" is a number of such digits cc that ss contains cc in the position ii (i.e. s[i]=cs[i]=c ), xx contains cc , but x[i]cx[i]≠c .

For example, the secret string is "0427", the opponent's try is "0724", then the answer is 22 bulls and 22 cows (the bulls are "0" and "2", the cows are "4" and "7"). If the secret string is "0123", the opponent's try is "0330", then the answer is 11 bull and 11 cow.

In this problem you are to guess the string ss that the system has chosen. You only know that the chosen string consists of 44 distinct digits.

You can make queries to the testing system, each query is the output of a single 44 -digit string. The answer to the query is the number of bulls and number of cows. If the system's response equals "4 0", that means the interaction with your problem is over and the program must terminate. That is possible for two reasons — the program either guessed the number xx or made an invalid action (for example, printed letters instead of digits).

Your program is allowed to do at most 77 queries.

You can hack solutions of other participants providing a 4-digit string containing distinct digits — the secret string.

输入格式

To read answers to the queries, the program must use the standard input.

The program will receive pairs of non-negative integers in the input, one pair per line. The first number in a pair is a number of bulls and the second one is a number of cows of the string ss and the string xix_{i} printed by your program. If the system response equals "4 0", then your solution should terminate.

The testing system will let your program read the ii -th pair of integers from the input only after your program displays the corresponding system query in the output: prints value xix_{i} in a single line and executes operation flush.

输出格式

The program must use the standard output to print queries.

Your program must output requests — 44 -digit strings x1,x2,...x_{1},x_{2},... , one per line. After the output of each line the program must execute flush operation. The program should read the answer to the query from the standard input.

Your program is allowed to do at most 77 queries.

输入输出样例

  • 输入#1

    0 1
    2 0
    1 1
    0 4
    2 1
    4 0
    

    输出#1

    8000
    0179
    3159
    3210
    0112
    0123

说明/提示

The secret string ss in the example is "0123".

首页