235632026-01-24 19:39:02miszorimarciLádapakolás raktárban (50)cpp17Accepted 50/5032ms2968 KiB
#include <bits/stdc++.h>
using namespace std;

#define int long long

int n, k, mx, sum, cnt;
vector<int> v;
set<int> s;

void new_seg(int i) {
    cnt++;
    sum = v[i];
    mx = i;
    s.clear();
    s.insert(v[i]);
}

void old(int i) {
    if(v[i] > v[mx])mx = i;
    s.insert(v[i]);
    
}

signed main() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    cin >> n >> k;
    v.resize(n+1);
    for(int i = 1; i <= n; i++)cin >> v[i];
    new_seg(1);
    for(int i = 2; i <= n; i++) {
        sum += v[i];
        if(sum > k) 
        {
            new_seg(i);
            continue;
        }
        if(s.count(v[i]))
        {
            new_seg(i);
            continue;
        }
        if(v[i] > v[mx] && mx == i - 1)
        {
            old(i);
            continue;
        }
        if(v[i] < v[i - 1])
        {
            old(i);
            continue;
        }
        new_seg(i);
    }
    cout << n - cnt;
    return 0;
}


SubtaskSumTestVerdictTimeMemory
base50/50
1Accepted0/01ms316 KiB
2Accepted0/03ms316 KiB
3Accepted2/21ms316 KiB
4Accepted2/21ms316 KiB
5Accepted2/21ms316 KiB
6Accepted2/21ms316 KiB
7Accepted2/21ms316 KiB
8Accepted2/21ms384 KiB
9Accepted3/31ms316 KiB
10Accepted2/21ms316 KiB
11Accepted2/21ms316 KiB
12Accepted2/21ms316 KiB
13Accepted3/32ms508 KiB
14Accepted3/33ms316 KiB
15Accepted3/33ms316 KiB
16Accepted2/217ms1272 KiB
17Accepted3/317ms1076 KiB
18Accepted3/320ms1108 KiB
19Accepted3/318ms1100 KiB
20Accepted3/332ms2612 KiB
21Accepted3/326ms2632 KiB
22Accepted3/326ms2968 KiB