# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
17894 | 2016-01-13T06:21:11 Z | chrome | Bank (IZhO14_bank) | C++14 | 1000 ms | 7192 KB |
#include <bits/stdc++.h> using namespace std; #define ll long long #define foreach(it, S) for (__typeof (S.begin()) it = S.begin(); it != S.end(); it++) #define all(x) x.begin(), x.end() #define endl '\n' #define _ ios_base :: sync_with_stdio(false); cin.tie(NULL); #ifdef inputf #define fname "" #else #define fname "" // <- Here #endif const double eps = 1e-9; const int MaxN = int(2e5) + 256; const int MOD = int(1e9) + 7; template <typename T> inline T gcd(T a, T b) { return b ? gcd (b, a % b) : a; } inline bool Palindrome(const string& s) { return equal(s.begin(), s.end(), s.rbegin()); } int n, m; int a[50], b[50]; bool calced[20][1 << 20]; bool d[20][1 << 20]; bool f(int i, int msk) { if (i == n) return true; if (calced[i][msk]) return d[i][msk]; calced[i][msk] = true; bool res = false; for (int nxt = msk; nxt > 0; nxt = (nxt - 1) & msk) { int nxtmsk = nxt ^ msk; int cur = 0; for (int i = 0; i < m; ++i) if (nxt >> i & 1) cur += b[i]; if (cur == a[i]) { if (f(i + 1, nxtmsk)) { res = true; break; } } } return d[i][msk] = res; } int main() { // _ #ifdef lcl freopen(fname".in", "r", stdin); freopen(fname".out", "w", stdout); #endif scanf("%d%d", &n, &m); for (int i = 0; i < n; ++i) scanf("%d", a + i); for (int i = 0; i < m; ++i) scanf("%d", b + i); puts(vector<string>{"NO", "YES"}[f(0, (1 << m) - 1)].c_str()); return 0; }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 376 KB | Output is correct |
2 | Correct | 2 ms | 500 KB | Output is correct |
3 | Correct | 2 ms | 500 KB | Output is correct |
4 | Correct | 2 ms | 500 KB | Output is correct |
5 | Correct | 62 ms | 500 KB | Output is correct |
6 | Correct | 2 ms | 500 KB | Output is correct |
7 | Correct | 2 ms | 500 KB | Output is correct |
8 | Correct | 2 ms | 500 KB | Output is correct |
9 | Correct | 61 ms | 516 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 688 KB | Output is correct |
2 | Correct | 2 ms | 688 KB | Output is correct |
3 | Correct | 2 ms | 688 KB | Output is correct |
4 | Correct | 2 ms | 688 KB | Output is correct |
5 | Correct | 2 ms | 688 KB | Output is correct |
6 | Correct | 2 ms | 688 KB | Output is correct |
7 | Correct | 2 ms | 688 KB | Output is correct |
8 | Correct | 2 ms | 688 KB | Output is correct |
9 | Correct | 2 ms | 688 KB | Output is correct |
10 | Correct | 2 ms | 688 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 3 ms | 688 KB | Output is correct |
2 | Correct | 2 ms | 688 KB | Output is correct |
3 | Correct | 3 ms | 688 KB | Output is correct |
4 | Correct | 2 ms | 688 KB | Output is correct |
5 | Correct | 3 ms | 688 KB | Output is correct |
6 | Correct | 2 ms | 708 KB | Output is correct |
7 | Correct | 2 ms | 708 KB | Output is correct |
8 | Correct | 2 ms | 708 KB | Output is correct |
9 | Correct | 3 ms | 708 KB | Output is correct |
10 | Correct | 3 ms | 708 KB | Output is correct |
11 | Correct | 2 ms | 708 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 376 KB | Output is correct |
2 | Correct | 2 ms | 500 KB | Output is correct |
3 | Correct | 2 ms | 500 KB | Output is correct |
4 | Correct | 2 ms | 500 KB | Output is correct |
5 | Correct | 62 ms | 500 KB | Output is correct |
6 | Correct | 2 ms | 500 KB | Output is correct |
7 | Correct | 2 ms | 500 KB | Output is correct |
8 | Correct | 2 ms | 500 KB | Output is correct |
9 | Correct | 61 ms | 516 KB | Output is correct |
10 | Correct | 2 ms | 688 KB | Output is correct |
11 | Correct | 2 ms | 688 KB | Output is correct |
12 | Correct | 2 ms | 688 KB | Output is correct |
13 | Correct | 2 ms | 688 KB | Output is correct |
14 | Correct | 2 ms | 688 KB | Output is correct |
15 | Correct | 2 ms | 688 KB | Output is correct |
16 | Correct | 2 ms | 688 KB | Output is correct |
17 | Correct | 2 ms | 688 KB | Output is correct |
18 | Correct | 2 ms | 688 KB | Output is correct |
19 | Correct | 2 ms | 688 KB | Output is correct |
20 | Correct | 3 ms | 688 KB | Output is correct |
21 | Correct | 2 ms | 688 KB | Output is correct |
22 | Correct | 3 ms | 688 KB | Output is correct |
23 | Correct | 2 ms | 688 KB | Output is correct |
24 | Correct | 3 ms | 688 KB | Output is correct |
25 | Correct | 2 ms | 708 KB | Output is correct |
26 | Correct | 2 ms | 708 KB | Output is correct |
27 | Correct | 2 ms | 708 KB | Output is correct |
28 | Correct | 3 ms | 708 KB | Output is correct |
29 | Correct | 3 ms | 708 KB | Output is correct |
30 | Correct | 2 ms | 708 KB | Output is correct |
31 | Correct | 3 ms | 708 KB | Output is correct |
32 | Correct | 2 ms | 708 KB | Output is correct |
33 | Correct | 27 ms | 736 KB | Output is correct |
34 | Correct | 72 ms | 736 KB | Output is correct |
35 | Correct | 121 ms | 736 KB | Output is correct |
36 | Correct | 116 ms | 736 KB | Output is correct |
37 | Correct | 93 ms | 736 KB | Output is correct |
38 | Correct | 60 ms | 736 KB | Output is correct |
39 | Correct | 60 ms | 736 KB | Output is correct |
40 | Correct | 70 ms | 748 KB | Output is correct |
41 | Correct | 70 ms | 748 KB | Output is correct |
42 | Execution timed out | 1074 ms | 7192 KB | Time limit exceeded |
43 | Halted | 0 ms | 0 KB | - |