Submission #1100877

# Submission time Handle Problem Language Result Execution time Memory
1100877 2024-10-14T21:59:46 Z Kirill22 Binary Subsequences (info1cup17_binary) C++17
0 / 100
900 ms 203848 KB
#include "bits/stdc++.h"

using namespace std;

const int mod = (int) 1e9 + 7;
map<array<int, 3>, int> dp;

int get(int k, int a, int b) {
    if (a < 0 || b < 0) {
        return 0;
    }
    if (k == 1 && a == 0 && b == 0) {
        return 1;
    }
    assert(k == a + b + 1);
    if (dp.find({k, a, b}) == dp.end()) {
        dp[{k, a, b}] += get(a, a - b - 1, b);
        dp[{k, a, b}] += get(b, a, b - a - 1);
        dp[{k, a, b}] %= mod;
    }
    return dp[{k, a, b}];
}

void solve() {
    int k;
    cin >> k;
    k++;
    int ans = 0;
    for (int j = 0; j < k; j++) {
        ans += get(k, j, k - j - 1);
        ans %= mod;
    }
    cout << ans << '\n';
    cout << -1 << '\n';
}

int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    int t = 1;
    cin >> t;
    while (t--) {
        solve();
    }
}
# Verdict Execution time Memory Grader output
1 Execution timed out 1077 ms 56392 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1062 ms 61512 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1071 ms 203848 KB Time limit exceeded
2 Halted 0 ms 0 KB -