Submission #4030153


Source Code Expand

#include <bits/stdc++.h>
using namespace std;
using ll = int64_t;
using P = pair<ll, ll>;
const ll INF = 5e15;
const ll MOD = 1e9 + 7;

vector<vector<ll>> empty(620, vector<ll>(620));
decltype(empty) dp;

int main(){
    ll N, K;
    string S;
    cin >> N >> K >> S;
    dp = empty;
    ll idx_dummy[630] = {};
    ll *idx = idx_dummy + 310;
    for(ll i = 0; i <= 620; i++) idx[i - 310] = i;
    dp[idx[0]][idx[0]] = 1;
    for(ll i = 0; i < N; i++){
        char c = S[i];
        auto tmp = empty;
        for(ll left = -K; left <= K; left++){
            for(ll right = left; right <= K; right++){
                // add 0
                if(c != '1'){
                    (tmp[idx[left]][idx[max<ll>(1, right)]] += dp[idx[left - 1]][idx[right - 1]]) %= MOD;
                }
                if(c != '0'){
                    (tmp[idx[min<ll>(-1, left)]][idx[right]] += dp[idx[left + 1]][idx[right + 1]]) %= MOD;
                }
            }
        }
        dp = tmp;
    }
    ll ans = 0;
    for(ll i = -K; i <= K; i++) for(ll j = i; j <= K; j++) (ans += dp[idx[i]][idx[j]]) %= MOD;
    cout << ans << endl;
    return 0;
}

Submission Info

Submission Time
Task C - 偶然ジェネレータ
User kcvlex
Language C++14 (GCC 5.4.1)
Score 100
Code Size 1177 Byte
Status AC
Exec Time 785 ms
Memory 9392 KB

Judge Result

Set Name Sample Subtask1 Subtask2 Subtask3
Score / Max Score 0 / 0 10 / 10 30 / 30 60 / 60
Status
AC × 4
AC × 14
AC × 14
AC × 34
Set Name Test Cases
Sample subtask0-sample-01.txt, subtask0-sample-02.txt, subtask0-sample-03.txt, subtask0-sample-04.txt
Subtask1 subtask0-sample-01.txt, subtask0-sample-02.txt, subtask0-sample-03.txt, subtask0-sample-04.txt, subtask1-01.txt, subtask1-02.txt, subtask1-03.txt, subtask1-04.txt, subtask1-05.txt, subtask1-06.txt, subtask1-07.txt, subtask1-08.txt, subtask1-09.txt, subtask1-10.txt
Subtask2 subtask0-sample-01.txt, subtask0-sample-02.txt, subtask0-sample-03.txt, subtask0-sample-04.txt, subtask2-01.txt, subtask2-02.txt, subtask2-03.txt, subtask2-04.txt, subtask2-05.txt, subtask2-06.txt, subtask2-07.txt, subtask2-08.txt, subtask2-09.txt, subtask2-10.txt
Subtask3 subtask0-sample-01.txt, subtask0-sample-02.txt, subtask0-sample-03.txt, subtask0-sample-04.txt, subtask1-01.txt, subtask1-02.txt, subtask1-03.txt, subtask1-04.txt, subtask1-05.txt, subtask1-06.txt, subtask1-07.txt, subtask1-08.txt, subtask1-09.txt, subtask1-10.txt, subtask2-01.txt, subtask2-02.txt, subtask2-03.txt, subtask2-04.txt, subtask2-05.txt, subtask2-06.txt, subtask2-07.txt, subtask2-08.txt, subtask2-09.txt, subtask2-10.txt, subtask3-01.txt, subtask3-02.txt, subtask3-03.txt, subtask3-04.txt, subtask3-05.txt, subtask3-06.txt, subtask3-07.txt, subtask3-08.txt, subtask3-09.txt, subtask3-10.txt
Case Name Status Exec Time Memory
subtask0-sample-01.txt AC 18 ms 9388 KB
subtask0-sample-02.txt AC 18 ms 9388 KB
subtask0-sample-03.txt AC 18 ms 9352 KB
subtask0-sample-04.txt AC 22 ms 9388 KB
subtask1-01.txt AC 7 ms 9344 KB
subtask1-02.txt AC 11 ms 9348 KB
subtask1-03.txt AC 19 ms 9388 KB
subtask1-04.txt AC 22 ms 9388 KB
subtask1-05.txt AC 22 ms 9392 KB
subtask1-06.txt AC 22 ms 9388 KB
subtask1-07.txt AC 22 ms 9356 KB
subtask1-08.txt AC 22 ms 9356 KB
subtask1-09.txt AC 22 ms 9388 KB
subtask1-10.txt AC 22 ms 9388 KB
subtask2-01.txt AC 169 ms 9388 KB
subtask2-02.txt AC 250 ms 9388 KB
subtask2-03.txt AC 416 ms 9384 KB
subtask2-04.txt AC 416 ms 9392 KB
subtask2-05.txt AC 410 ms 9392 KB
subtask2-06.txt AC 411 ms 9384 KB
subtask2-07.txt AC 410 ms 9388 KB
subtask2-08.txt AC 418 ms 9392 KB
subtask2-09.txt AC 415 ms 9392 KB
subtask2-10.txt AC 404 ms 9388 KB
subtask3-01.txt AC 344 ms 9388 KB
subtask3-02.txt AC 417 ms 9388 KB
subtask3-03.txt AC 409 ms 9388 KB
subtask3-04.txt AC 409 ms 9388 KB
subtask3-05.txt AC 424 ms 9392 KB
subtask3-06.txt AC 418 ms 9392 KB
subtask3-07.txt AC 785 ms 9388 KB
subtask3-08.txt AC 451 ms 9388 KB
subtask3-09.txt AC 439 ms 9392 KB
subtask3-10.txt AC 403 ms 9392 KB