pyてよn日記

一寸先は闇が人生

ABC088: C - Takahashi's Information

 C埋め始めました.水色(まだ緑でもないですが...)になるためのはっきりとした精進の方針が分かりませんが,まずはけんちょんさんの記事を進めていくことにしました.こういう記事は本当にありがたい限りです.

qiita.com

 問題解説記事は,自分の考察の過程を残し自分の中に印象付けるためにやっているので,少々回りくどいところもあるかもしれませんのお含みおきを.

Question


f:id:pytwbf201830:20190105215513p:plain

Consideration


 数の範囲が狭いから全列挙いけそうかとなんとなく考えたがさすがに無理だった.考え付いたのは,

  • a1 の値を決めれば入力の値を使って b1, b2, b3 の値が求まる.
  • そのb1, b2, b3 の値を使ってa2, a3 の値を 3 通り求めることができる.

 a_{2} = c_{2,1} - b_{1}
 a_{2} = c_{2,2} - b_{2}
 a_{2} = c_{2,3} - b_{3}

a3の場合も同様に求められる.

a2, a3において三つの値が全部一致したら Yes, 一致しなかったら No を出力するように実装する.

Solution


 公式解説とも方針は合ってた.コードは以下.上の考察を忠実に実装した.(クソコード感は否めません.こう書いた方が良いなどあったらコメントお願いします.)

ABC088: C - Takahashi's Information

Reflection

 全てのパターンを列挙するのは不可能でも,1 つの要素を固定して他を for 文で回せば TLE にならない,というテクニックがあることを学んだ.

Refference