Submission #1004066

#TimeUsernameProblemLanguageResultExecution timeMemory
1004066LuvidiBank (IZhO14_bank)C++17
100 / 100
222 ms28544 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define pll pair<ll, ll> #define pii pair<int, int> #define fs first #define sc second #define pb push_back void solve() { int n,m; cin>>n>>m; int a[n],b[m]; for(int i=0;i<n;i++)cin>>a[i]; for(int i=0;i<m;i++)cin>>b[i]; vector<int> ma[20001]; for(int m1=0;m1<(1<<m);m1++){ int s=0; for(int i=0;i<m;i++){ if(m1&(1<<i))s+=b[i]; } ma[s].pb(m1); } bool x[n][1<<m]; memset(x,0,sizeof(x)); vector<int> v; v.pb(0); for(int i=0;i<n;i++){ vector<int> v2; for(int m1:v){ for(int m2:ma[a[i]]){ if((m1&m2)==0){ if(!x[i][m1^m2]){ v2.pb(m1^m2); x[i][m1^m2]=1; } } } } v=v2; } if(!v.empty())cout<<"YES"; else cout<<"NO"; } int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); solve(); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...