以下の内容はhttps://drken1215.hatenablog.com/entry/2024/06/09/023653より取得しました。


AtCoder ABC 357 A - Sanitize Hands (7Q, 灰色, 100 点)

意外とミスりやすいかもしれない。慎重に for 文を書こう。

問題概要

 N 個の正の整数  H_{1}, H_{2}, \dots, H_{N} と、正の整数  M が与えられる。

 M に対して、 H_{1}, H_{2}, \dots, H_{N} を順に引いていく。このとき、 M が負にならずに引ける最大個数を求めよ。

解法

実際に順番に  M から引いていって、 M \ge 0 であればカウントするようにすれば OK。

#include <bits/stdc++.h>
using namespace std;

int main() {
    int N, M;
    cin >> N >> M;
    vector<int> H(N);
    for (int i = 0; i < N; ++i) cin >> H[i];
    
    // M から H[0], H[1], ... を引いていく
    int res = 0;
    for (int i = 0; i < N; ++i) {
        M -= H[i];
        if (M >= 0) ++res;
    }
    cout << res << endl;
}



以上の内容はhttps://drken1215.hatenablog.com/entry/2024/06/09/023653より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14