ABC157 C - Guess The Number

備忘録

問題

atcoder.jp

回答

import sys
import os


def main():
    if os.getenv("LOCAL"):
        sys.stdin = open("input.txt", "r")

    N, M = list(map(int, sys.stdin.readline().split()))
    lines = [list(map(int, sys.stdin.readline().split())) for _ in range(M)]

    ret = -1
    for n in range(0, pow(10, N)):
        if len(str(n)) != N:
            continue
        flg = True
        for s, c in lines:
            if str(n)[s - 1] != str(c):
                flg = False

        if flg:
            ret = n
            break

    print(ret)


if __name__ == '__main__':
    main()

考え方

0からN桁の整数の最大値を範囲に、条件に合う整数があるか否か全探索を行う。
気を付けるポイントは探索範囲をfor n in range(0, pow(10, N)):として、0を含めていること
また、最小値を0としているため、桁数のチェックをちゃんと行うこと