# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
490208 |
2021-11-26T10:01:34 Z |
kaxzert |
Bank (IZhO14_bank) |
C++17 |
|
489 ms |
82500 KB |
/**
00 00 11 00 00 111111 00000 111111 000000
00 00 1111 0000 11 00 11 11 000000
0000 11 11 00 11 00000 111111 00
00 00 11111111 0000 11 00 11 11 00
00 00 11 11 00 00 111111 00000 11 11 00
**/
#include<bits/stdc++.h>
using namespace std;
#define fto(i, a, b) for(int i = a; i <= b; ++i)
#define fdto(i, a, b) for(int i = a; i >= b; --i)
#define bugarr(a, i, j) cout << #a << "{" << i << "..." << j << "}:"; fto(k, i, j-1) cout << a[k] << ", "; cout << a[j] << endl;
#define ll long long
#define db double
#define ldb long double
#define ff first
#define ss second
#define pb push_back
#define mp make_pair
#define eb emplace_back
#define vt vector
#define all(x) (x).begin(), (x).end()
#define rall(x) (x).rbegin(), (x).rend()
#define trav(i, a) for(auto &i : a)
#define sz(a) (int)a.size()
#define pi(a, b) pair<a, b>
#define fast ios::sync_with_stdio(false); cin.tie(0)
void setIO(string s) {
if (sz(s) != 0) {
freopen((s+".inp").c_str(),"r",stdin);
freopen((s+".out").c_str(),"w",stdout);
}
}
void setIOusaco(string s) {
if (sz(s) != 0) {
freopen((s+".in").c_str(),"r",stdin);
freopen((s+".out").c_str(),"w",stdout);
}
}
template<typename T, typename V>
bool ckmin(T &a, V b) {return (b < a)? a = b, true : false;}
template<typename T, typename V>
bool ckmax(T &a, V b) {return (b > a)? a = b, true : false;}
int f[27][(1<<(21))-1];
int n, m;
vt<int> ke[27];
int dp(int i, int bitmask) {
if (i == n) return 1;
if (f[i][bitmask] != -1) return f[i][bitmask];
trav(u, ke[i]) {
if ((bitmask&u)==0) {
if (dp(i+1, bitmask|u)) return f[i][bitmask] = 1;
}
}
return f[i][bitmask] = 0;
}
int main() {
#ifndef TAP
setIO("");
//setIOusaco("bank2014");
#endif
fast;
cin >> n >> m;
vt<int> a(n);
trav(i, a) cin >> i;
vt<int> b(m);
trav(i, b) cin >> i;
fto(i, 0, n-1) {
fto(j, 1, (1<<m)-1) {
int li = j;
int sum = 0;
int pos = 0;
while(li > 0) {
sum += b[pos]*(li&1);
++pos;
li >>= 1;
}
if (sum == a[i]) ke[i].pb(j);
}
}
fto(i, 0, n-1) {
fto(j, 0, (1<<m)-1) f[i][j] = -1;
}
cout << (dp(0, 0) ? "YES": "NO") << '\n';
return 0;
}
Compilation message
bank.cpp: In function 'void setIO(std::string)':
bank.cpp:34:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
34 | freopen((s+".inp").c_str(),"r",stdin);
| ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bank.cpp:35:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
35 | freopen((s+".out").c_str(),"w",stdout);
| ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bank.cpp: In function 'void setIOusaco(std::string)':
bank.cpp:41:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
41 | freopen((s+".in").c_str(),"r",stdin);
| ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bank.cpp:42:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
42 | freopen((s+".out").c_str(),"w",stdout);
| ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
204 KB |
Output is correct |
2 |
Correct |
0 ms |
204 KB |
Output is correct |
3 |
Correct |
0 ms |
204 KB |
Output is correct |
4 |
Correct |
1 ms |
332 KB |
Output is correct |
5 |
Correct |
17 ms |
4412 KB |
Output is correct |
6 |
Correct |
0 ms |
204 KB |
Output is correct |
7 |
Correct |
1 ms |
204 KB |
Output is correct |
8 |
Correct |
24 ms |
4420 KB |
Output is correct |
9 |
Correct |
20 ms |
4272 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
332 KB |
Output is correct |
2 |
Correct |
0 ms |
332 KB |
Output is correct |
3 |
Correct |
0 ms |
332 KB |
Output is correct |
4 |
Correct |
1 ms |
332 KB |
Output is correct |
5 |
Correct |
0 ms |
332 KB |
Output is correct |
6 |
Correct |
0 ms |
332 KB |
Output is correct |
7 |
Correct |
0 ms |
332 KB |
Output is correct |
8 |
Correct |
1 ms |
332 KB |
Output is correct |
9 |
Correct |
0 ms |
332 KB |
Output is correct |
10 |
Correct |
1 ms |
332 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
716 KB |
Output is correct |
2 |
Correct |
1 ms |
460 KB |
Output is correct |
3 |
Correct |
3 ms |
972 KB |
Output is correct |
4 |
Correct |
3 ms |
1228 KB |
Output is correct |
5 |
Correct |
3 ms |
972 KB |
Output is correct |
6 |
Correct |
2 ms |
600 KB |
Output is correct |
7 |
Correct |
2 ms |
588 KB |
Output is correct |
8 |
Correct |
1 ms |
460 KB |
Output is correct |
9 |
Correct |
2 ms |
844 KB |
Output is correct |
10 |
Correct |
3 ms |
844 KB |
Output is correct |
11 |
Correct |
4 ms |
1228 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
204 KB |
Output is correct |
2 |
Correct |
0 ms |
204 KB |
Output is correct |
3 |
Correct |
0 ms |
204 KB |
Output is correct |
4 |
Correct |
1 ms |
332 KB |
Output is correct |
5 |
Correct |
17 ms |
4412 KB |
Output is correct |
6 |
Correct |
0 ms |
204 KB |
Output is correct |
7 |
Correct |
1 ms |
204 KB |
Output is correct |
8 |
Correct |
24 ms |
4420 KB |
Output is correct |
9 |
Correct |
20 ms |
4272 KB |
Output is correct |
10 |
Correct |
0 ms |
332 KB |
Output is correct |
11 |
Correct |
0 ms |
332 KB |
Output is correct |
12 |
Correct |
0 ms |
332 KB |
Output is correct |
13 |
Correct |
1 ms |
332 KB |
Output is correct |
14 |
Correct |
0 ms |
332 KB |
Output is correct |
15 |
Correct |
0 ms |
332 KB |
Output is correct |
16 |
Correct |
0 ms |
332 KB |
Output is correct |
17 |
Correct |
1 ms |
332 KB |
Output is correct |
18 |
Correct |
0 ms |
332 KB |
Output is correct |
19 |
Correct |
1 ms |
332 KB |
Output is correct |
20 |
Correct |
2 ms |
716 KB |
Output is correct |
21 |
Correct |
1 ms |
460 KB |
Output is correct |
22 |
Correct |
3 ms |
972 KB |
Output is correct |
23 |
Correct |
3 ms |
1228 KB |
Output is correct |
24 |
Correct |
3 ms |
972 KB |
Output is correct |
25 |
Correct |
2 ms |
600 KB |
Output is correct |
26 |
Correct |
2 ms |
588 KB |
Output is correct |
27 |
Correct |
1 ms |
460 KB |
Output is correct |
28 |
Correct |
2 ms |
844 KB |
Output is correct |
29 |
Correct |
3 ms |
844 KB |
Output is correct |
30 |
Correct |
4 ms |
1228 KB |
Output is correct |
31 |
Correct |
33 ms |
8516 KB |
Output is correct |
32 |
Correct |
51 ms |
12624 KB |
Output is correct |
33 |
Correct |
122 ms |
28972 KB |
Output is correct |
34 |
Correct |
180 ms |
41404 KB |
Output is correct |
35 |
Correct |
198 ms |
45480 KB |
Output is correct |
36 |
Correct |
329 ms |
82476 KB |
Output is correct |
37 |
Correct |
34 ms |
8516 KB |
Output is correct |
38 |
Correct |
67 ms |
16708 KB |
Output is correct |
39 |
Correct |
145 ms |
33068 KB |
Output is correct |
40 |
Correct |
168 ms |
41388 KB |
Output is correct |
41 |
Correct |
338 ms |
82472 KB |
Output is correct |
42 |
Correct |
92 ms |
20796 KB |
Output is correct |
43 |
Correct |
135 ms |
33076 KB |
Output is correct |
44 |
Correct |
250 ms |
61992 KB |
Output is correct |
45 |
Correct |
51 ms |
12608 KB |
Output is correct |
46 |
Correct |
101 ms |
24888 KB |
Output is correct |
47 |
Correct |
244 ms |
61876 KB |
Output is correct |
48 |
Correct |
22 ms |
4428 KB |
Output is correct |
49 |
Correct |
22 ms |
4336 KB |
Output is correct |
50 |
Correct |
332 ms |
82488 KB |
Output is correct |
51 |
Correct |
170 ms |
41424 KB |
Output is correct |
52 |
Correct |
165 ms |
41396 KB |
Output is correct |
53 |
Correct |
167 ms |
41424 KB |
Output is correct |
54 |
Correct |
336 ms |
82476 KB |
Output is correct |
55 |
Correct |
329 ms |
82500 KB |
Output is correct |
56 |
Correct |
340 ms |
82480 KB |
Output is correct |
57 |
Correct |
489 ms |
82484 KB |
Output is correct |
58 |
Correct |
313 ms |
78396 KB |
Output is correct |