Submission #1306408

#TimeUsernameProblemLanguageResultExecution timeMemory
1306408hectormedranoBank (IZhO14_bank)C++20
0 / 100
1 ms580 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; ll N, M; vector<ll> a, b; map<vector<ll>, bool> vis; bool ans = false; void BT(vector<ll> v, ll mx){ if(vis[v]){return;} vis[v] = true; if(v.size() == N){ vector<ll> s(mx, 0); for(ll i=0;i<N;i++){ s[v[i]] += b[i]; } sort(s.begin(), s.end()); if(mx > M){return;} for(ll i=mx-1;i>=0;i--){ if(a[M-(mx-i)] != s[i]){return;} } ans = true; } else { for(ll i=0;i<mx;i++){ v.push_back(i); BT(v, mx); v.pop_back(); } v.push_back(mx); BT(v, mx+1); v.pop_back(); } } int main() { cin>>N>>M; a.resize(N); b.resize(M); for(ll i=0;i<N;i++){cin>>a[i];} for(ll i=0;i<M;i++){cin>>b[i];} sort(a.begin(), a.end()); BT({}, 0); if(ans){cout<<"YES";} else{cout<<"NO";} }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...