首页 > 解决方案 > 我不知道交互式任务中的标准输出有什么问题,测试系统说发生了空闲限制超出

问题描述

交互器在新行上给出程序要求的答案,但是刷新存在一些问题。它在测试服务器上不起作用,但在我的计算机上一切正常

    from sys import stdin, stdout
    islier = False
    print('? 1')
    stdout.flush()
    t = int(stdin.read().rstrip('\n'))
    if t == 1:
        islier = True
    l = 1
    r = 100000
    while l != r:
        print('? ' + str((l + r) // 2))
        stdout.flush()
        t = int(stdin.read().rstrip('\n'))
        if islier:
            t = abs(t - 1)
        if t == 1:
            r = (l + r) // 2
        else:
            l = (l + r) // 2
    print('! ' + str((l + r) // 2))

标签: pythonstdout

解决方案


问题可能与冲洗无关。在我的机器上,运行sys.stdin.read()会阻塞系统,这可能会导致超出空闲限制的错误。使用sys.stdin.readline()它将返回用户输入输入的那一刻:

t = int(stdin.readline().rstrip('\n'))

推荐阅读