| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1355319 | kmath628 | Bank (IZhO14_bank) | C++20 | 86 ms | 8584 KiB |
#include <bits/stdc++.h>
using namespace std;
pair<int,int> dp[1<<20];
int a[20],b[20];
int main(){
int n,m,i,j,k,ans=0;
scanf("%d %d",&n,&m);
for(i=0;i<n;i++) scanf("%d",&a[i]);
for(i=0;i<m;i++) scanf("%d",&b[i]);
for(i=1;i<(1<<m);i++){
dp[i]={-1,-1};
for(j=0;j<m;j++){
if(!(i&(1<<j))) continue;
k=i^(1<<j);
if(dp[k].first!=-1 && dp[k].second+b[j]<=a[dp[k].first]){
dp[i]=dp[k];
dp[i].second+=b[j];
if(dp[i].second==a[dp[i].first]){
dp[i].second=0;
dp[i].first++;
}
if(dp[i].first==n){
dp[i].first=-1;
ans=1;
}
}
}
}
if(ans) printf("YES\n");
else printf("NO\n");
return 0;
}
Compilation message (stderr)
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
