10967 2024. 04. 22 17:17:08 bovizdb Szitakötő (50 pont) cpp17 Hibás válasz 12/50 17ms 7092 KiB
#include <bits/stdc++.h>
 
using namespace std;
 
#define ll long long
#define endl "\n"
#define pll pair<ll, ll>
#define fs first
#define sc second
#define vll vector<ll>
 
const ll mod = 1e9 + 7;

signed main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL); cout.tie(NULL);
    
    ll n, k;
    cin >> n >> k;

    vll v(n);
    for (ll i = 0; i < n; i++)
        cin >> v[i];

    if (k == 1 && n > 1)
    {
        cout << 0;
        return 0;
    }

    ll ans = 1;

    vll w(n);
    w[0] = v[0];
    for (ll i = 1; i < n; i++)
        w[i] = w[i-1] + v[i];

    for (ll i = 0; i < k-1; i++)
    {
        if (w[i] <= w[k-1]-w[i])
        {
            ans *= 2;
            ans %= mod;
        }
    }

    for (ll i = k; i < n; i++)
    {
        if (w[i-1] <= v[i])
        {
            cout << 0;
            return 0;
        }
        if (w[i-1] > w[n-1]-w[i-1])
        {
            ans *= 2;
            ans %= mod;
        }
        else if (i < n-1)
        {
            if (w[i-1] > v[i] + v[i+1])
            {
                ans *= 2;
                ans %= mod;
            }
        }
        else
        {
            ans *= 2;
            ans %= 1000000007;
        }
    }
    if (k == n)
    {
        ans *= 2;
        ans %= mod;
    }
    cout << ans;

    return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 12/50
1 Elfogadva 0/0 3ms 1828 KiB
2 Hibás válasz 0/0 17ms 5084 KiB
3 Elfogadva 1/1 3ms 2232 KiB
4 Elfogadva 1/1 3ms 2440 KiB
5 Elfogadva 1/1 3ms 2660 KiB
6 Elfogadva 1/1 2ms 2740 KiB
7 Elfogadva 1/1 2ms 2744 KiB
8 Hibás válasz 0/1 3ms 2736 KiB
9 Hibás válasz 0/1 3ms 2960 KiB
10 Hibás válasz 0/2 3ms 2980 KiB
11 Hibás válasz 0/2 3ms 3180 KiB
12 Hibás válasz 0/2 2ms 3284 KiB
13 Hibás válasz 0/2 3ms 3420 KiB
14 Elfogadva 2/2 3ms 3356 KiB
15 Hibás válasz 0/2 3ms 3364 KiB
16 Hibás válasz 0/2 3ms 3364 KiB
17 Hibás válasz 0/2 3ms 3508 KiB
18 Hibás válasz 0/2 3ms 3360 KiB
19 Hibás válasz 0/2 3ms 3364 KiB
20 Hibás válasz 0/2 3ms 3360 KiB
21 Elfogadva 1/1 3ms 3488 KiB
22 Hibás válasz 0/2 14ms 6380 KiB
23 Hibás válasz 0/2 14ms 6424 KiB
24 Hibás válasz 0/2 17ms 6384 KiB
25 Hibás válasz 0/2 17ms 6392 KiB
26 Elfogadva 2/2 17ms 6652 KiB
27 Hibás válasz 0/2 12ms 6844 KiB
28 Hibás válasz 0/2 14ms 6900 KiB
29 Hibás válasz 0/2 14ms 6948 KiB
30 Hibás válasz 0/2 17ms 6996 KiB
31 Elfogadva 2/2 17ms 7092 KiB