199102025-12-29 13:03:43AblablablaFolyóparti telkek (40 pont)cpp17Elfogadva 40/4035ms1076 KiB
#include <bits/stdc++.h>

using namespace std;

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

    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++){
        int l = i, r = n - 1;
        int ind = -1;

        while(l <= r){
            int k = (l + r) / 2;

            int ert = pref[k + 1] - pref[i];

            if(p >= ert){
                ind = k;
                l = k + 1;
            } else{
                r = k - 1;
            }
        }

        if(ind == -1) continue;

        ans = max(ans, ind - i + 1);
    }

    cout << ans << "\n";
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base40/40
1Elfogadva0/01ms316 KiB
2Elfogadva0/035ms1076 KiB
3Elfogadva2/21ms316 KiB
4Elfogadva2/21ms316 KiB
5Elfogadva2/21ms316 KiB
6Elfogadva2/21ms316 KiB
7Elfogadva2/21ms316 KiB
8Elfogadva3/31ms316 KiB
9Elfogadva3/32ms316 KiB
10Elfogadva3/32ms316 KiB
11Elfogadva3/32ms368 KiB
12Elfogadva3/316ms608 KiB
13Elfogadva3/321ms644 KiB
14Elfogadva3/318ms944 KiB
15Elfogadva3/328ms1020 KiB
16Elfogadva3/328ms1020 KiB
17Elfogadva3/332ms1016 KiB