Submission #397898

# Submission time Handle Problem Language Result Execution time Memory
397898 2021-05-03T11:07:54 Z haskaran Bank (IZhO14_bank) C++17
19 / 100
100 ms 16724 KB
#include <bits/stdc++.h>
using namespace std;

const int N = 21;

int n, m, a[N + 5], b[N + 5], ps[N + 5], dp[(1 << N) + 10], sm[(1 << N) + 10];
bool ans;

int main() {
    ios:: sync_with_stdio(false), cin.tie(NULL), cout.tie(NULL);
    cin >> n >> m;
    for (int i = 1; i <= n; i++)
        cin >> a[i];
    for (int i = 1; i <= m; i++)
        cin >> b[i];
    for (int i = 1; i <= n; i++)
        ps[i] = a[i] + ps[i - 1];
    for (int i = 1; i <= m; i++)
        for (int msk = 0; msk < 1 << m + 1; msk++)
            if (msk >> i & 1) {
                sm[msk] = sm[msk ^ (1 << i)] + b[i];
                bool flag = (dp[msk ^ (1 << i)] < n && sm[msk] - ps[dp[msk ^ (1 << i)]] == a[dp[msk ^ (1 << i)] + 1]);
                dp[msk] = max(dp[msk], dp[msk ^ (1 << i)] + flag);
                ans |= dp[msk] == n;

            }
    cout << (ans? "YES\n": "NO\n");
}

Compilation message

bank.cpp: In function 'int main()':
bank.cpp:19:40: warning: suggest parentheses around '+' inside '<<' [-Wparentheses]
   19 |         for (int msk = 0; msk < 1 << m + 1; msk++)
      |                                      ~~^~~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 1 ms 204 KB Output is correct
3 Correct 1 ms 332 KB Output is correct
4 Correct 3 ms 844 KB Output is correct
5 Correct 100 ms 16724 KB Output is correct
6 Correct 1 ms 332 KB Output is correct
7 Correct 1 ms 332 KB Output is correct
8 Correct 100 ms 16716 KB Output is correct
9 Correct 99 ms 16716 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 332 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 460 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 1 ms 204 KB Output is correct
3 Correct 1 ms 332 KB Output is correct
4 Correct 3 ms 844 KB Output is correct
5 Correct 100 ms 16724 KB Output is correct
6 Correct 1 ms 332 KB Output is correct
7 Correct 1 ms 332 KB Output is correct
8 Correct 100 ms 16716 KB Output is correct
9 Correct 99 ms 16716 KB Output is correct
10 Incorrect 1 ms 332 KB Output isn't correct
11 Halted 0 ms 0 KB -