Submission #1262447

#TimeUsernameProblemLanguageResultExecution timeMemory
1262447lnt314Bank (IZhO14_bank)C++17
100 / 100
227 ms26140 KiB
#include <bits/stdc++.h> #define ll long long #define fi first #define se second using namespace std; const int N=25,M=1<<20,K=2e4+5; int a[N],b[N],n,m; bool f[N][M]; int g[M]; vector<int> tk[K]; int main() { ios_base::sync_with_stdio(0); cin.tie(0); #define taskname "" if(fopen(taskname ".inp","r")) { freopen(taskname ".inp","r",stdin); freopen(taskname ".out","w",stdout); } cin>>n>>m; for(int i=1;i<=n;i++) cin>>a[i]; for(int i=0;i<m;i++) cin>>b[i]; for(int cur=1;cur<(1<<m);cur++) { g[cur]=g[cur&(cur-1)]+b[__builtin_ctz(cur)]; tk[g[cur]].emplace_back(cur); } for(int i=1;i<=n;i++) if(tk[a[i]].empty()) { cout<<"NO"; return 0; } f[0][0]=1; for(int i=0;i<n;i++) { for(int cur=0;cur<(1<<m);cur++) { if(!f[i][cur]) continue; for(int &nxt:tk[a[i+1]]) f[i+1][cur|nxt]=((cur|nxt)==(cur^nxt)); } } for(int i=0;i<(1<<m);i++) if(f[n][i]) { cout<<"YES"; return 0; } cout<<"NO"; }

Compilation message (stderr)

bank.cpp: In function 'int main()':
bank.cpp:18:24: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   18 |                 freopen(taskname ".inp","r",stdin);
      |                 ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
bank.cpp:19:24: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   19 |                 freopen(taskname ".out","w",stdout);
      |                 ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...