ritsuuuuのAtCoder日記

AtCoderの過去問のメモです。

ABC157-C Guess The Number

今回は、ABC157-Cの自分なりの考えをまとめていきます。

atcoder.jp

【問題要約】

以下の条件1,2を満たす0以上の自然数が存在すればそれらのうち最小のものを、存在しなければ-1を出力せよ。

  1. 十進法でN桁(先頭に0はつけない)
  2. s_i桁目は c_iである。

【条件】

・入力は全て整数

 1\leq N \leq 3

 0\leq M \leq 5

 0\leq s_i \leq N

 0\leq c_i \leq 9

【入力】

N M

 s_1 c_1

 \vdots

s_M c_M

【考えたこと】

 3桁以下の自然数なので、1 ~ 999を全探索して 2 の条件を満たしたところで探索を終了すれば良い。 確かめたい数字を  i とすると、 i a_i 桁目  == c_i をすべての条件について確認する。以下は実装手順。

  1.  ans = -1 とする。
  2. 1 ~ 9, 10 ~ 99, 100 ~ 999までのループをNに合わせて行う。( iとする。)
  3.  count = 0 として条件1 ~ M までループを行う。
  4. 条件を満たしたら count += 1 とする。満たさなかったらbreak
  5.  count == M となったらすべての条件を満たしたことになるので、 ans = iとして、最初のfor 文からbreak する。
  6.  ans を出力する。 

【コード】

f:id:purokionkun:20210124225312p:plain


 

 

#abc #300点問題 #茶色 #全探索