132102025-01-07 08:33:03AblablablaVirágos rét (50 pont)cpp17Wrong answer 42/5023ms1196 KiB
#include <bits/stdc++.h>

using namespace std;

int main()
{
    int n, k;
    cin >> n >> k;

    vector<int> alap(n);
    for(int &x : alap){
        cin >> x;
    }

    vector<int> pref(n + 1);
    for(int i = 1; i <= n; i++){
        pref[i] = pref[i - 1] + alap[i - 1];
    }

    int ans = 0;
    for(int i = 0; i < n; i++){
        if(!alap[i]) continue;

        int l = i, r = n - 1;
        int ind = -1;
        while(l <= r){
            int mid = (l + r) / 2;

            if(pref[mid + 1] - pref[i] >= k){
                ind = mid;
                r = mid - 1;
            } else{
                l = mid + 1;
            }
        }


        if(ind != -1){
            //cout << i << " : " << pref[n] - pref[ind] << "\n";
            ans += pref[n] - pref[ind];
        }
    }

    cout << ans << "\n";
}
SubtaskSumTestVerdictTimeMemory
base42/50
1Accepted0/01ms500 KiB
2Accepted0/01ms316 KiB
3Accepted0/019ms1076 KiB
4Accepted2/21ms316 KiB
5Accepted2/21ms316 KiB
6Accepted2/21ms316 KiB
7Accepted3/31ms316 KiB
8Accepted3/31ms360 KiB
9Accepted3/31ms316 KiB
10Accepted2/21ms316 KiB
11Accepted3/31ms512 KiB
12Accepted2/21ms316 KiB
13Accepted3/31ms316 KiB
14Accepted2/220ms1072 KiB
15Wrong answer0/220ms1040 KiB
16Accepted3/321ms1076 KiB
17Accepted3/318ms1036 KiB
18Wrong answer0/323ms1056 KiB
19Accepted3/318ms1068 KiB
20Accepted3/320ms1072 KiB
21Accepted3/321ms1196 KiB
22Wrong answer0/321ms1076 KiB