Submission #13824819
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
#define ll long long
int main() {
int N, S;
cin >> N >> S;
vector<ll> A(N);
for (int i = 0; i < N; i++) cin >> A[i];
ll mod = 998244353;
vector<vector<ll>> dp(N+1, vector<ll>(S+1, 0));
dp[0][0] = 1;
for (int i = 0; i < N; i++) {
for (int j = 0; j <= S; j++) {
dp[i][j] %= mod;
dp[i+1][j] += dp[i][j]*2%mod;
if (j+A[i] <= S) dp[i+1][j+A[i]] += dp[i][j];
}
}
cout << dp[N][S] % mod << endl;
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | F - Knapsack for All Subsets |
| User | hitoare |
| Language | C++ (GCC 9.2.1) |
| Score | 600 |
| Code Size | 576 Byte |
| Status | AC |
| Exec Time | 72 ms |
| Memory | 73652 KiB |
Judge Result
| Set Name | sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 600 / 600 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| sample | sample01, sample02, sample03 |
| All | 11, 12, 13, 14, 15, 21, 22, 23, 24, 25, 31, 32, 33, 34, 35, 41, 42, 43, 44, 45, 51, 52, 53, 54, sample01, sample02, sample03 |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 11 | AC | 2 ms | 3716 KiB |
| 12 | AC | 2 ms | 3744 KiB |
| 13 | AC | 2 ms | 3656 KiB |
| 14 | AC | 2 ms | 3624 KiB |
| 15 | AC | 2 ms | 3632 KiB |
| 21 | AC | 6 ms | 6204 KiB |
| 22 | AC | 34 ms | 34852 KiB |
| 23 | AC | 29 ms | 28340 KiB |
| 24 | AC | 36 ms | 37624 KiB |
| 25 | AC | 11 ms | 8648 KiB |
| 31 | AC | 31 ms | 28704 KiB |
| 32 | AC | 38 ms | 37792 KiB |
| 33 | AC | 35 ms | 35468 KiB |
| 34 | AC | 37 ms | 36432 KiB |
| 35 | AC | 39 ms | 36364 KiB |
| 41 | AC | 70 ms | 73592 KiB |
| 42 | AC | 72 ms | 73512 KiB |
| 43 | AC | 72 ms | 73652 KiB |
| 44 | AC | 70 ms | 73616 KiB |
| 45 | AC | 70 ms | 73620 KiB |
| 51 | AC | 2 ms | 3504 KiB |
| 52 | AC | 6 ms | 3644 KiB |
| 53 | AC | 3 ms | 3784 KiB |
| 54 | AC | 3 ms | 3788 KiB |
| sample01 | AC | 2 ms | 3500 KiB |
| sample02 | AC | 2 ms | 3556 KiB |
| sample03 | AC | 2 ms | 3424 KiB |