132112025-01-07 08:34:14AblablablaVirágos rét (50 pont)cpp17Accepted 50/5023ms1980 KiB
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;

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

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

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

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

        ll l = i, r = n - 1;
        ll ind = -1;
        while(l <= r){
            ll 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
base50/50
1Accepted0/01ms316 KiB
2Accepted0/01ms316 KiB
3Accepted0/020ms1844 KiB
4Accepted2/21ms316 KiB
5Accepted2/21ms316 KiB
6Accepted2/21ms316 KiB
7Accepted3/31ms316 KiB
8Accepted3/31ms316 KiB
9Accepted3/31ms528 KiB
10Accepted2/21ms508 KiB
11Accepted3/31ms604 KiB
12Accepted2/21ms316 KiB
13Accepted3/31ms316 KiB
14Accepted2/219ms1708 KiB
15Accepted2/220ms1676 KiB
16Accepted3/323ms1684 KiB
17Accepted3/319ms1664 KiB
18Accepted3/323ms1980 KiB
19Accepted3/318ms1960 KiB
20Accepted3/321ms1972 KiB
21Accepted3/323ms1964 KiB
22Accepted3/321ms1968 KiB