AtCoder ABC203
ABC203参加しました。
A - Chinchirorin
a=cならcを,b=cならaを,c=aならbを出力します。
解説 - AtCoder Beginner Contest 203
B - AtCoder Condominium
以下のコードのとおりです。
for(int i = 1; i <= N; ++i) { for(int j = 1; j <= K; ++j) { ans += i * 100 + j; } }
解説 - AtCoder Beginner Contest 203
C - Friends and Travel costs
バカバカしいミスをして延々とWAだった...
Submission #23078279 - AtCoder Beginner Contest 203(Sponsored by Panasonic)
上のコードに沿って解説します。
今いる村から、次に友達がいる村まで、手持ちの残金K円で行けるかどうかをチェックします。
行けない場合は、今いる村から有り金K円全部使っていけるとこまで行って答え出力します。 次に友達がいる村がもうなくなったときも同じことをします。
行ける場合は、K円から友達がいる村までかかった費用(cost)を引いて、今いる村を更新(currVillage)します。 また、この後で、この村で友達からもらえる給付金を足します。複数人からもらえる場合もあるので、予め「その村でもらえる給付額」は足してまとめておくとここで楽ができます。
(A,B)はAをキーとしてソートしておいて$A_1 \leq A_2 \leq ...$ として昇順で並べておく必要があります。これはソートすればよく、大抵の言語ならクイックソートで計算量は$O(logN)$だと思います。
型の最大値を超えないように、気をつけましょう。
解説 - AtCoder Beginner Contest 203
まとめ
参加するたびにスコアが下がる... 実装力が不足している気がする。