意外とミスりやすいかもしれない。慎重に for
文を書こう。
問題概要
個の正の整数
と、正の整数
が与えられる。
に対して、
を順に引いていく。このとき、
が負にならずに引ける最大個数を求めよ。
解法
実際に順番に から引いていって、
であればカウントするようにすれば 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; }