235132026-01-24 10:19:12matemakaiLádapakolás raktárban (50)cpp17Accepted 50/5071ms2408 KiB
#include <bits/stdc++.h>
using namespace std;

int main() {
	int n, m;
	cin >> n >> m;
	vector<int> v(n);
	for (int i = 0; i < n; ++i) {
		cin >> v[i];
	}

	int stacks = 1;
	int sum = v[0];
	unordered_set<int> s = {v[0]};
	bool up = true;

	for (int i = 1; i < n; ++i) {
		if (v[i] > v[i - 1] && !s.count(v[i]) && up && (sum + v[i] <= m)) {
			s.insert(v[i]);
			sum += v[i];
		} else if (v[i] < v[i - 1] && !s.count(v[i]) && (sum + v[i] <= m)) {
			up = false;
			s.insert(v[i]);
			sum += v[i];
		} else {
			++stacks;
			sum = v[i];
			s = {v[i]};
			up = true;
		}
	}

	cout << n - stacks << endl;
}
SubtaskSumTestVerdictTimeMemory
base50/50
1Accepted0/01ms316 KiB
2Accepted0/04ms316 KiB
3Accepted2/21ms316 KiB
4Accepted2/21ms508 KiB
5Accepted2/21ms316 KiB
6Accepted2/21ms316 KiB
7Accepted2/21ms316 KiB
8Accepted2/21ms316 KiB
9Accepted3/31ms316 KiB
10Accepted2/21ms316 KiB
11Accepted2/21ms316 KiB
12Accepted2/22ms316 KiB
13Accepted3/32ms316 KiB
14Accepted3/34ms316 KiB
15Accepted3/34ms440 KiB
16Accepted2/232ms800 KiB
17Accepted3/343ms804 KiB
18Accepted3/352ms796 KiB
19Accepted3/337ms752 KiB
20Accepted3/339ms2140 KiB
21Accepted3/371ms2192 KiB
22Accepted3/359ms2408 KiB