AtCoder Beginner Contest 196 備忘録

AtCoder Beginner Contest 196 の備忘録です。

問題はこちら↓

今回はABC4完でした。

・A問題:Difference Max

整数 a , b , c , d が与えられる。a ≦ x ≦ b , c ≦ y ≦ d となるように整数 x , y を選ぶ時、x - y の最大値を求める。
( a , b ) - ( c , d ) を全て試して最大値を求めれば良い。

解答例(Python)
https://atcoder.jp/contests/abc196/submissions/21106794

・B問題:Round Down

整数または少数 X が与えられるので、小数点以下を切り捨てて整数で出力する。
入力が整数の場合はそのままで問題無いが、少数でかつ桁数の多い場合は桁溢れをしてしまうので、入力は文字列として受け取り小数点以下の部分を削除して出力することで答えを求めることができる。
Phthonでは split() で任意の区切り文字で分割することが出来るので、" . " を区切り文字として分割し整数部分のみを出力すれば良い。この時、2つの変数に分割して受け取ろうとすると入力が整数だった場合にエラーとなってしまうので、配列として受け取り X[0] を出力すると良い。

解答例(Python)
https://atcoder.jp/contests/abc196/submissions/21106594

・C問題:Doubled

整数 N が与えられる。以下の条件を満たす 1 以上 N 以下の整数 x は何個あるか求める。

・x の十進表記(先頭に0をつけない)は偶数桁であり、
 その前半と後半は文字列として等しい

i = 1 から順に s = int(文字列 i + 文字列 i ) として見ていき、それが N 以下であれば答えに 1 を加え、i を順に増やして s が N を超えたら終了するようにすれば良い。

解答例(Python)
https://atcoder.jp/contests/abc196/submissions/21106431

この記事が気に入ったらサポートをしてみませんか?