Submission #440493


Source Code Expand

#include <iostream>
#include <cstdio>
#include <cassert>
#include <cstring>
#include <vector>
#include <valarray>
#include <array>
#include <queue>
#include <set>
#include <unordered_set>
#include <map>
#include <unordered_map>
#include <algorithm>
#include <cmath>
#include <complex>
#include <random>
 
using namespace std;
typedef long long ll;
typedef unsigned long long ull;

const ll MD = 1e9+7;

ll dp[300][300][300];
int n, x;
string s;

ll solve(int a, int b, int k) {
    k = max(0, k);
    if (b == n) {
        if (k) return 0;
        return 1;
    }
    if (dp[a][b][k] != -1) return dp[a][b][k];
    ll &res = dp[a][b][k];
    if (a%2 == 0) {
        if (s[b] == '2') {
            res = solve(a+1, b+1, k);
        } else if (s[b] != '?') {
            res = solve(0, b+1, k);
        } else {
            res = solve(a+1, b+1, k) + 9*solve(0, b+1, k);
        }
    } else {
        if (s[b] == '2') {
            res = solve(1, b+1, k);
        } else if (s[b] == '5') {
            res = solve(a+1, b+1, k-(a+1)/2);
        } else if (s[b] != '?') {
            res = solve(0, b+1, k);
        } else {
            res = solve(1, b+1, k)+solve(a+1, b+1, k-(a+1)/2)+8*solve(0, b+1, k);
        }
    }
    res %= MD;
    return res;
}

int main() {
    memset(dp, -1, sizeof(dp));
    cin >> n >> x;
    cin >> s;

    cout << solve(0, 0, x) << endl;
    return 0;
}

Submission Info

Submission Time
Task A - ニコニコ文字列2
User yosupo
Language C++11 (GCC 4.8.1)
Score 20
Code Size 1449 Byte
Status AC
Exec Time 512 ms
Memory 211888 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 20 / 20
Status
AC × 2
AC × 22
Set Name Test Cases
Sample sample_01.txt, sample_02.txt
All 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, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask1_20.txt, subtask1_21.txt, subtask1_22.txt
Case Name Status Exec Time Memory
sample_01.txt AC 436 ms 211752 KB
sample_02.txt AC 441 ms 211748 KB
subtask1_01.txt AC 446 ms 211764 KB
subtask1_02.txt AC 441 ms 211756 KB
subtask1_03.txt AC 440 ms 211752 KB
subtask1_04.txt AC 435 ms 211752 KB
subtask1_05.txt AC 435 ms 211884 KB
subtask1_06.txt AC 440 ms 211760 KB
subtask1_07.txt AC 434 ms 211872 KB
subtask1_08.txt AC 436 ms 211752 KB
subtask1_09.txt AC 437 ms 211756 KB
subtask1_10.txt AC 434 ms 211764 KB
subtask1_11.txt AC 433 ms 211884 KB
subtask1_12.txt AC 434 ms 211880 KB
subtask1_13.txt AC 436 ms 211876 KB
subtask1_14.txt AC 430 ms 211876 KB
subtask1_15.txt AC 437 ms 211884 KB
subtask1_16.txt AC 438 ms 211888 KB
subtask1_17.txt AC 512 ms 211876 KB
subtask1_18.txt AC 437 ms 211884 KB
subtask1_19.txt AC 507 ms 211872 KB
subtask1_20.txt AC 438 ms 211880 KB
subtask1_21.txt AC 431 ms 211876 KB
subtask1_22.txt AC 428 ms 211880 KB