| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 679333 | vjudge1 | Bank (IZhO14_bank) | C++11 | 158 ms | 1384 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<iostream>
using namespace std;
int n,m,req[25],has[25];
bool dp[1100005],binrep[25];
int main () {
scanf("%d%d",&n,&m);
for(int i = 0; i < n; i++) {
scanf("%d",&req[i]);
}
for(int i = 0; i < m; i++) {
scanf("%d",&has[i]);
}
dp[0] = true;
for(int i = 0; i < 1<<m; i++) {
if(dp[i] == true) {
for(int j = 0; j < m; j++) {
binrep[j] = false;
}
int cnt = 0, tmp = i;
while(tmp > 0) {
binrep[cnt] = tmp%2;
tmp/=2;
cnt++;
}
int rem = 0;
for(int j = 0; j < m; j++) {
if(binrep[j] == true) rem += has[j];
}
int amn = 0;
while(amn < n && rem-req[amn] >= 0) {
rem-=req[amn];
amn++;
}
if(amn == n && rem == 0) {
printf("YES\n");
return 0;
}
if(amn < n) {
for(int j = 0; j < m; j++) {
if(binrep[j] == false && rem+has[j] <= req[amn]) dp[i+(1<<j)] = true;
}
}
}
}
printf("NO\n");
return 0;
}
Compilation message (stderr)
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
