235632026-01-24 19:39:02miszorimarciLádapakolás raktárban (50)cpp17Elfogadva 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;
}


RészfeladatÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/01ms316 KiB
2Elfogadva0/03ms316 KiB
3Elfogadva2/21ms316 KiB
4Elfogadva2/21ms316 KiB
5Elfogadva2/21ms316 KiB
6Elfogadva2/21ms316 KiB
7Elfogadva2/21ms316 KiB
8Elfogadva2/21ms384 KiB
9Elfogadva3/31ms316 KiB
10Elfogadva2/21ms316 KiB
11Elfogadva2/21ms316 KiB
12Elfogadva2/21ms316 KiB
13Elfogadva3/32ms508 KiB
14Elfogadva3/33ms316 KiB
15Elfogadva3/33ms316 KiB
16Elfogadva2/217ms1272 KiB
17Elfogadva3/317ms1076 KiB
18Elfogadva3/320ms1108 KiB
19Elfogadva3/318ms1100 KiB
20Elfogadva3/332ms2612 KiB
21Elfogadva3/326ms2632 KiB
22Elfogadva3/326ms2968 KiB