제출 #1306409

#제출 시각아이디문제언어결과실행 시간메모리
1306409hectormedrano은행 (IZhO14_bank)C++20
0 / 100
1116 ms266488 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() == M){ vector<ll> s(mx, 0); for(ll i=0;i<M;i++){ s[v[i]] += b[i]; } sort(s.begin(), s.end()); if(mx < N){return;} for(ll i=0;i<N;i++){ if(a[i] != s[mx-(N-i)]){return;} } ans = true; //for(ll x : s){cout<<x<<" ";} cout<<endl; } 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...