#!/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): new_seq = guess_seq[:] new_seq[place] = digit if not is_valid_number(new_seq): continue status = submit_guess(new_seq) if status == FINAL: return elif prev_status.hit < status.hit: guess_seq = new_seq prev_status = status break elif prev_status.hit > status.hit: new_seq = guess_seq status = prev_status break else: continue if __name__ == '__main__': main()