#!/usr/bin/env python3 # -*- coding: utf-8 -*- import array import collections import sys MAX_D = 4 Status = collections.namedtuple("Status", "hit blow") FINAL = Status(4, 0) def is_valid_number(seq): return len(seq) == len(set(seq)) def submit_guess(guess_seq): print(" ".join(map(str, guess_seq))) sys.stdout.flush() return Status(*map(int, input().split())) def main(): guess_seq = array.array("B", [0, 1, 2, 3]) prev_status= submit_guess(guess_seq) status = prev_status if status == FINAL: return for place in range(MAX_D)[::-1]: for digit in range(10): prev_digit = guess_seq[place] guess_seq[place] = digit if not is_valid_number(guess_seq): guess_seq[place] = prev_digit continue status = submit_guess(guess_seq) if status == FINAL: return elif prev_status.hit < status.hit: prev_status = status break elif prev_status.hit > status.hit: guess_seq[place] = prev_digit status = prev_status break else: continue if __name__ == '__main__': main()