はまやんはまやんはまやん

hamayanhamayan's blog

Nuts [AtCoder Beginner Contest 204 B]

https://atcoder.jp/contests/abc204/tasks/abc204_b

解説

https://atcoder.jp/contests/abc204/submissions/23260128

シミュレーションする問題。要求されていることを実装しよう。
それぞれの木の実について、

  • 10以下であれば何もしない
  • 10より大きいならA[i] - 10を収穫する

ように実装すればいい。

自分の実装

自分の実装ではそうなっておらず、max(0, A[i] - 10)を足し合わせる実装にしている。
これは基本はA[i] - 10が収穫されるが、10未満の場合はマイナスになってしまい、かつ、その場合は何もしないことになっているので、
A[i] - 10をして負ならば0になるようにしてやれば画一的な操作で実装ができる。
よって、下限がある場合はmaxを使ったこのような実装が使える。
手数として持っておくといい実装テクだと思う。

int N, A[1010];
//---------------------------------------------------------------------------------------------------
void _main() {
    cin >> N;
    rep(i, 0, N) cin >> A[i];

    int ans = 0;
    rep(i, 0, N) ans += max(0, A[i] - 10);
    cout << ans << endl;
}