/ SeriousOJ /

Record Detail

Time Exceeded


  
# Status Time Cost Memory Cost
#1 Accepted 1ms 320.0 KiB
#2 Accepted 1ms 324.0 KiB
#3 Accepted 22ms 480.0 KiB
#4 Time Exceeded ≥1096ms ≥19.828 MiB
#5 Time Exceeded ≥1091ms ≥38.848 MiB

Code

#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define all(x) (x).begin(), (x).end()
#define f(i, n) for (int i = 0; i < n; i++)
#define trace(x) cerr << #x << ": " << x << '\n'
const int M = 1e9 + 7;
ll n, k;

map<tuple<ll, ll, ll>, ll> dp;

ll fun(ll i, ll s, ll f, vector<ll> &v)
{
    if (i == n)
    {
        return f and s >= k;
    }

    if (dp.find({i, s, f}) != dp.end())
    {
        return dp[{i, s, f}];
    }

    ll ans = 0;
    ans += fun(i + 1, s, 1, v);
    ans %= M;

    ans += fun(i + 1, s + v[i], f, v);
    ans %= M;

    return dp[{i, s, f}] = ans;
}

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);

    int t;
    cin >> t;
    while (t--)
    {
        cin >> n >> k;
        vector<ll> v(n);
        for (auto &a : v)
            cin >> a;

        dp.clear();

        cout << fun(0, 0, 0, v) << endl;
    }

    return 0;
}

Information

Submit By
Type
Submission
Problem
P1093 Number of Ways (Easy version)
Contest
Brain Booster #5
Language
C++20 (G++ 13.2.0)
Submit At
2024-09-05 16:04:29
Judged At
2024-11-11 03:01:47
Judged By
Score
5
Total Time
≥1096ms
Peak Memory
≥38.848 MiB