' P '

whatever I will forget

ABC157 C - Guess The Number

概要

atcoder.jp

問題タイプ

  • 全探索.
  • 1 <= N <= 3なので、最大3桁の999までの数字のどれかが答えになる(答えがある場合).

解法

  • 1-3桁の999までの数字で与えられた桁数の数字とマッチする一番小さい数字を求める問題.
  • 1桁目が7、3桁目が2である最低の数字は、702となる.
  • 数値を文字列に変換し、与えられた条件にマッチするか判定.
  • 三桁の数字、702であれば、num[0] = 7, num[1] = 0, num[2] = 2のとき、上記の1桁目が7、3桁目が2であるという条件は満たせているため、それを答えとして出力する.

Sample

n,m = map(int, input().split())
sc = [list(map(int, input().split())) for _ in range(m)]

for i in range(1000):
    num = str(i)
    # そもそもn桁ではない場合、何もしない
    if len(num) == n:
        isValid = True
        for j in range(m):
            # 現在のループの数字と、与えられた条件(n桁目がcであるか)判定
            if num[sc[j][0]-1] != str(sc[j][1]):
                isValid = False
                break

        if isValid:
            print(num)
            exit()
print(-1)