153102025-02-18 10:19:22AblablablaSzitakötő (50 pont)cpp17Hibás válasz 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";
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base0/50
1Hibás válasz0/01ms316 KiB
2Hibás válasz0/050ms1844 KiB
3Hibás válasz0/11ms316 KiB
4Hibás válasz0/11ms316 KiB
5Hibás válasz0/11ms316 KiB
6Hibás válasz0/11ms316 KiB
7Hibás válasz0/11ms316 KiB
8Hibás válasz0/11ms316 KiB
9Hibás válasz0/11ms316 KiB
10Hibás válasz0/21ms316 KiB
11Hibás válasz0/21ms316 KiB
12Hibás válasz0/21ms372 KiB
13Hibás válasz0/21ms316 KiB
14Hibás válasz0/21ms320 KiB
15Hibás válasz0/21ms404 KiB
16Hibás válasz0/21ms316 KiB
17Hibás válasz0/21ms316 KiB
18Hibás válasz0/21ms316 KiB
19Hibás válasz0/21ms316 KiB
20Hibás válasz0/21ms316 KiB
21Hibás válasz0/11ms316 KiB
22Hibás válasz0/235ms1960 KiB
23Hibás válasz0/237ms1964 KiB
24Hibás válasz0/248ms1968 KiB
25Hibás válasz0/248ms1968 KiB
26Hibás válasz0/248ms1964 KiB
27Hibás válasz0/218ms1852 KiB
28Hibás válasz0/237ms1960 KiB
29Hibás válasz0/235ms1960 KiB
30Hibás válasz0/248ms1972 KiB
31Hibás válasz0/243ms1968 KiB