153602025-02-19 08:56:57999Ládapakolás raktárban (50)cpp17Accepted 50/5050ms2576 KiB
// Source: https://usaco.guide/general/io

#include <bits/stdc++.h>
using namespace std;

int main() {
	int n,k;cin>>n>>k;
    vector<int> v(n);
    for(int i = 0;i<n;i++){
        cin>>v[i];
    }
    int cnt=0;
    set<int> s;
    int i=0,j=0;
    while(i<n){
        s.clear();
        j=i;
        int sum=0;
        bool decreased=false;
        while(j<n&&sum+v[j]<=k&&s.find(v[j])==s.end()&&!(j>0&&decreased&&v[j]>v[j-1])){
            if(j>i&&v[j]<v[j-1])decreased=true;
            s.insert(v[j]);
            sum+=v[j];
            j++;
        }
        // cerr << i << " " << j << endl;
        cnt+=max(j-i-1,0);
        i=j;
    }
    cout<<cnt<<endl;
}
SubtaskSumTestVerdictTimeMemory
base50/50
1Accepted0/01ms316 KiB
2Accepted0/04ms316 KiB
3Accepted2/21ms316 KiB
4Accepted2/21ms316 KiB
5Accepted2/21ms316 KiB
6Accepted2/21ms508 KiB
7Accepted2/21ms316 KiB
8Accepted2/21ms316 KiB
9Accepted3/31ms316 KiB
10Accepted2/21ms316 KiB
11Accepted2/21ms372 KiB
12Accepted2/22ms316 KiB
13Accepted3/33ms344 KiB
14Accepted3/33ms316 KiB
15Accepted3/34ms432 KiB
16Accepted2/230ms800 KiB
17Accepted3/339ms568 KiB
18Accepted3/348ms804 KiB
19Accepted3/335ms892 KiB
20Accepted3/350ms2356 KiB
21Accepted3/345ms2280 KiB
22Accepted3/348ms2576 KiB