153102025-02-18 10:19:22AblablablaSzitakötő (50 pont)cpp17Wrong answer 0/5050ms1972 KiB
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
const ll MOD = 1e9 + 7;

ll hatvany(ll a){
    ll vissza = 1;
    ll akt = 2;

    for(ll i = 0; i < 31; i++){
        if(a & (1 << i)){
            vissza *= akt;
            vissza %= MOD;
        }

        akt *= akt;
        akt %= MOD;
    }

    return vissza;
}

int main()
{
    ll n, k;
    cin >> n >> k;
    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 l = 0, r = k - 1;
    ll elol = 0;
    while(l <= r){
        ll mid = (l + r) / 2; // aki balra megy

        ll balra = pref[mid + 1];
        ll jobbra = pref[k + 1] - pref[mid + 1];

        if(balra <= jobbra){
            elol = mid;
            l = mid + 1;
        } else{
            r = mid - 1;
        }
    }


    l = k + 1, r = n - 1;
    ll hatul = 0;
    while(l <= r){
        ll mid = (l + r) / 2; // aki jobbra megy

        ll balra = pref[mid + 1];
        ll jobbra = pref[n] - pref[mid];

        if(balra >= jobbra){
            hatul = mid;
            r = mid - 1;
        } else{
            l = mid + 1;
        }
    }

    cout << elol << " " << hatul << "\n";

    elol = hatvany(elol + 1);
    hatul = hatvany(n - hatul);

    cout << (elol * hatul) % MOD << "\n";
}
SubtaskSumTestVerdictTimeMemory
base0/50
1Wrong answer0/01ms316 KiB
2Wrong answer0/050ms1844 KiB
3Wrong answer0/11ms316 KiB
4Wrong answer0/11ms316 KiB
5Wrong answer0/11ms316 KiB
6Wrong answer0/11ms316 KiB
7Wrong answer0/11ms316 KiB
8Wrong answer0/11ms316 KiB
9Wrong answer0/11ms316 KiB
10Wrong answer0/21ms316 KiB
11Wrong answer0/21ms316 KiB
12Wrong answer0/21ms372 KiB
13Wrong answer0/21ms316 KiB
14Wrong answer0/21ms320 KiB
15Wrong answer0/21ms404 KiB
16Wrong answer0/21ms316 KiB
17Wrong answer0/21ms316 KiB
18Wrong answer0/21ms316 KiB
19Wrong answer0/21ms316 KiB
20Wrong answer0/21ms316 KiB
21Wrong answer0/11ms316 KiB
22Wrong answer0/235ms1960 KiB
23Wrong answer0/237ms1964 KiB
24Wrong answer0/248ms1968 KiB
25Wrong answer0/248ms1968 KiB
26Wrong answer0/248ms1964 KiB
27Wrong answer0/218ms1852 KiB
28Wrong answer0/237ms1960 KiB
29Wrong answer0/235ms1960 KiB
30Wrong answer0/248ms1972 KiB
31Wrong answer0/243ms1968 KiB