0.はじめに
通常のコンテストとA~Dの難易度の上がり方が
違う感じでした。点数を見て気づきました。
Bが難しいというか面倒で時間がかかりDまでしか
解けませんでしたが、レートは+29と上がりました。
1.A - Attack
AをBで割り、割り切れれば商を、割り切れなければ商に1足した
値を出力しました。
https://atcoder.jp/contests/abc302/submissions/41539881
2.B - Find snuke
愚直に実装したら、3KBを超える超大作に。
整頓した書き方にしたかったのですが
いったん実装した時点でだいぶ時間が経過していたので
そのまま提出しACでした。
考え方
・文字列からuをさがす
・uを中心に左上、左、左下、下、右下、右、右上、上から見た場合に
snukeになるかをチェックし、snukeになっていれば座標を出力して終了
https://atcoder.jp/contests/abc302/submissions/41562592
3.C - Almost Equal
ざっと見た感じで、なかなか難しいと思いましたが
制約を見たところ文字列は8種まで、文字数は5文字までだったの
全パターンチェックで行けそうなことに気づきました。
実装
・itertoolsをインポート
・文字列をリストSに格納。
・itertools.permutationsでSから5個を抽出したリストvを作成
・vを順に読んでいき、単語単位の差が2以上あった場合は
ブレイクして次のvへ、無い場合は次の単語のチェックをする
・vの単語すべてのチェックがOKの組み合わせがあったらYesを出力して
終了
・すべてのvをチェックして、Yesの組み合わせが無かったらNoを出力
して終了
https://atcoder.jp/contests/abc302/submissions/41567964
4.D - Impartial Gift
ぱっと見B、Cよりもかんたんだな・・・と思いつつ実装。
10分で回答できました。
実装
・リストA、Bを昇順ソート
・変数iにN-1をjにM-1をセット
・以下、iかjが-1になるまで繰り返し
・A[i]-B[j]の絶対値がD以下の場合
・A[i]+B[j]の値を出力して終了
・A[i]-B[j]の絶対値がDより大きい場合
・A[i]がB[j]より大きい場合
・iから1をマイナス
・B[j]かA[i]以上の場合
・jから1をマイナス
・繰り返し終了しても該当組み合わせがない場合-1を出力して終了
https://atcoder.jp/contests/abc302/submissions/41571563
以上