235622026-01-24 19:26:02miszorimarciLádapakolás raktárban (50)cpp17Wrong answer 32/5048ms1080 KiB
#include <bits/stdc++.h>

using namespace std;

int L[100005];
int dp[100005];

int main() {
    int N, M; cin >> N >> M;
    for (int i = 1; i <= N; ++i)cin >> L[i];
    

    int mt_start = 1;
    int sum_start = 1;
    long long sum = 0;
    bool dec = false;

    dp[0] = 0;

    for (int i = 1; i <= N; ++i) {
        if (i > 1) {
            if (L[i] > L[i - 1]) {
                if (dec) {
                    mt_start = i - 1;
                    dec = false;
                }
            } else if (L[i] < L[i - 1]) {
                dec = true;
            } else {
                mt_start = i;
                dec = false;
            }
        }

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

    cout << N-dp[N];
    return 0;
}
SubtaskSumTestVerdictTimeMemory
base32/50
1Accepted0/01ms508 KiB
2Wrong answer0/03ms512 KiB
3Accepted2/21ms316 KiB
4Wrong answer0/21ms316 KiB
5Accepted2/21ms508 KiB
6Accepted2/21ms316 KiB
7Accepted2/21ms316 KiB
8Accepted2/21ms316 KiB
9Accepted3/31ms316 KiB
10Accepted2/21ms316 KiB
11Accepted2/21ms500 KiB
12Wrong answer0/22ms500 KiB
13Accepted3/32ms512 KiB
14Wrong answer0/33ms316 KiB
15Accepted3/34ms508 KiB
16Wrong answer0/228ms1072 KiB
17Accepted3/337ms1024 KiB
18Accepted3/348ms1080 KiB
19Accepted3/328ms1036 KiB
20Wrong answer0/329ms1076 KiB
21Wrong answer0/328ms908 KiB
22Wrong answer0/332ms940 KiB