AtCoder ABC203

ABC203参加しました。

atcoder.jp

 

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

まとめ

参加するたびにスコアが下がる... 実装力が不足している気がする。