115102024-10-15 11:52:05chucknorrisSzitakötő (50 pont)cpp17Hibás válasz 9/5046ms1572 KiB
#include <iostream>
#define MOD 1000000007

using namespace std;

int N, K, a[100002];
long long s[100002];

int main(){
    cin >> N >> K;
    for(int i = 1; i <= N; i++){
        cin >> a[i]; s[i] = s[i - 1] + a[i];
    }

    if(K == 1) cout << 0;
    else if(N == 3){
        if(K == 2){
            if(a[1] + a[2] < a[3]) cout << 0;
            else cout << 4;
        }
        else if(K == 3){
            if(a[1] + a[2] <= a[3]) cout << 8;
            else cout << 4;
        }
    }
    else{
        for(int i = K; i < N; i++){
            if(s[i] <= a[i + 1]){
                cout << 0; return 0;
            }
        }
        long long ans = 1, S = 0;
        int i = K;
        while(S < s[i]){
            S = S + a[i]; i = i - 1;
        }

        for( ; i >= 1; i--) ans = ans * 2 % MOD;

        if(K == N) cout << ans * 2 % MOD;
    }
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base9/50
1Hibás válasz0/01ms320 KiB
2Hibás válasz0/046ms1336 KiB
3Elfogadva1/11ms500 KiB
4Elfogadva1/11ms320 KiB
5Hibás válasz0/11ms320 KiB
6Elfogadva1/11ms320 KiB
7Elfogadva1/11ms508 KiB
8Hibás válasz0/11ms320 KiB
9Hibás válasz0/11ms320 KiB
10Hibás válasz0/21ms320 KiB
11Hibás válasz0/21ms320 KiB
12Hibás válasz0/21ms320 KiB
13Hibás válasz0/21ms320 KiB
14Hibás válasz0/21ms320 KiB
15Hibás válasz0/21ms320 KiB
16Hibás válasz0/21ms320 KiB
17Hibás válasz0/21ms320 KiB
18Hibás válasz0/21ms320 KiB
19Hibás válasz0/21ms320 KiB
20Hibás válasz0/21ms352 KiB
21Elfogadva1/11ms624 KiB
22Hibás válasz0/232ms1472 KiB
23Hibás válasz0/235ms1488 KiB
24Hibás válasz0/245ms1424 KiB
25Hibás válasz0/246ms1572 KiB
26Elfogadva2/246ms1336 KiB
27Hibás válasz0/218ms1360 KiB
28Hibás válasz0/235ms1336 KiB
29Hibás válasz0/232ms1444 KiB
30Hibás válasz0/246ms1336 KiB
31Elfogadva2/241ms1516 KiB