115112024-10-15 12:01:13chucknorrisSzitakötő (50 pont)cpp17Hibás válasz 9/5048ms1480 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(N == 1) cout << 2;
    else 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;}


    }
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base9/50
1Hibás válasz0/01ms320 KiB
2Hibás válasz0/048ms1400 KiB
3Elfogadva1/11ms508 KiB
4Elfogadva1/11ms320 KiB
5Hibás válasz0/11ms320 KiB
6Elfogadva1/11ms320 KiB
7Elfogadva1/11ms320 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/22ms320 KiB
15Hibás válasz0/22ms320 KiB
16Hibás válasz0/22ms320 KiB
17Hibás válasz0/21ms520 KiB
18Hibás válasz0/21ms320 KiB
19Hibás válasz0/21ms320 KiB
20Hibás válasz0/21ms500 KiB
21Elfogadva1/11ms320 KiB
22Hibás válasz0/234ms1328 KiB
23Hibás válasz0/235ms1360 KiB
24Hibás válasz0/246ms1452 KiB
25Hibás válasz0/248ms1440 KiB
26Elfogadva2/246ms1336 KiB
27Hibás válasz0/218ms1336 KiB
28Hibás válasz0/235ms1432 KiB
29Hibás válasz0/232ms1336 KiB
30Hibás válasz0/246ms1336 KiB
31Elfogadva2/243ms1480 KiB