Submission #436594

#TimeUsernameProblemLanguageResultExecution timeMemory
436594Trinadh724Bank (IZhO14_bank)C++17
100 / 100
143 ms16720 KiB
#include<iostream> #include<vector> #include<algorithm> #include<deque> #include<queue> #include<set> #include<map> #include<string> #include<math.h> using namespace std; #define ll long long #define pb push_back #define ld long double #define ff first #define ss second #define mod 1000000007 ll cd(ll a,ll b) { if(a==0)return b; else if (b==0)return a; else return cd(b,a%b); } int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); // freopen("bank.in", "r", stdin); // freopen("bank.out", "w", stdout); ll n, m; cin>>n>>m; ll a[n+5], b[m+5]; for(int i=0;i<n;i++){ cin>>a[i]; } for(int j=0;j<m;j++){ cin>>b[j]; } pair<ll,ll> notes[1<<m]; for(int i=0;i<(1<<n); i++){ notes[i] = {0,0}; } ll ans = -1, curr, mon; for(int i=0;i<(1<<m); i++){ for(int s=0;s<m;s++){ if(i & (1<<s)){ curr = notes[i ^ (1<<s)].ff; mon = notes[i ^ (1<<s)].ss; if(mon + b[s] == a[curr]){ curr++; mon = 0; notes[i] = max(notes[i], {curr, mon}); } else{ mon += b[s]; notes[i] = max(notes[i], {curr, mon}); } } } // cout<<i<<" "<<notes[i].ff<<" "<<notes[i].ss<<endl; if(notes[i].ff >= n){ cout<<"YES"<<endl; return 0; } } cout<<"NO"<<endl; return 0; }

Compilation message (stderr)

bank.cpp: In function 'int main()':
bank.cpp:49:5: warning: unused variable 'ans' [-Wunused-variable]
   49 |  ll ans = -1, curr, mon;
      |     ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...