235612026-01-24 19:20:57miszorimarciLádapakolás raktárban (50)cpp17Wrong answer 32/5018ms1596 KiB
#include <bits/stdc++.h>
using namespace std;

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);

    int N, M;
    cin >> N >> M;

    vector<int> L(N + 1);
    for (int i = 1; i <= N; ++i) {
        cin >> L[i];
    }

    vector<int> dp(N + 1, 0);
    vector<int> start(N + 1);
    
    int inc_start = 1;
    long long sum = 0;
    int sum_start = 1;

    for (int i = 1; i <= N; ++i) {
        if (i == 1) {
            start[i] = 1;
            inc_start = 1;
        } else {
            if (L[i] > L[i - 1]) {
                inc_start = (L[i] == L[i-1]) ? i : inc_start; 
                start[i] = inc_start;
            } else if (L[i] < L[i - 1]) {
                start[i] = start[i - 1];
                inc_start = i; 
            } else {
                start[i] = i;
                inc_start = i;
            }
        }

        sum += L[i];
        while (sum > M) {
            sum -= L[sum_start];
            sum_start++;
        }
        int j= max(start[i], sum_start);
        dp[i] = 1 + dp[j- 1];
    }

    cout << N - dp[N] << "\n";

    return 0;
}
SubtaskSumTestVerdictTimeMemory
base32/50
1Accepted0/01ms316 KiB
2Wrong answer0/02ms500 KiB
3Accepted2/21ms316 KiB
4Wrong answer0/22ms316 KiB
5Accepted2/21ms316 KiB
6Accepted2/21ms316 KiB
7Accepted2/21ms316 KiB
8Accepted2/21ms320 KiB
9Accepted3/31ms316 KiB
10Accepted2/21ms316 KiB
11Accepted2/21ms316 KiB
12Wrong answer0/21ms316 KiB
13Accepted3/31ms316 KiB
14Wrong answer0/32ms512 KiB
15Accepted3/32ms316 KiB
16Wrong answer0/213ms1584 KiB
17Accepted3/314ms1592 KiB
18Accepted3/318ms1596 KiB
19Accepted3/310ms1280 KiB
20Wrong answer0/312ms1336 KiB
21Wrong answer0/310ms1284 KiB
22Wrong answer0/313ms1316 KiB