Submission #1107509

#TimeUsernameProblemLanguageResultExecution timeMemory
1107509vjudge1Bank (IZhO14_bank)C++17
100 / 100
142 ms23580 KiB
#include <bits/stdc++.h> using namespace std; #define nl '\n' #define pb push_back const int N = 1e5 + 1; int n, m, a[21], b[21]; bool us[21][(1 << 20)]; vector< int >mp[N]; void rec( int i, int sum ) { if( us[i][sum] ) return; us[i][sum] = true; if( i == n ) { cout <<"YES\n"; exit(0); } for( int x: mp[a[i]] ) if( sum + x == (sum | x) ) rec(i + 1, sum + x); } void solve() { cin >>n >>m; for( int i = 0; i < n; ++i ) cin >>a[i]; for( int j = 0; j < m; ++j ) cin >>b[j]; for( int mask = 0; mask < (1 << m); ++mask ) { int sum = 0; for( int i = 0; i < m; ++i ) if( (1 << i) & mask ) sum += b[i]; mp[sum].pb( mask ); } rec(0, 0); cout <<"NO\n"; } signed main() { ios_base::sync_with_stdio(0); cin.tie(0); //freopen("input.txt", "r", stdin); //freopen("output.txt", "w", stdout); int T = 1; // cin >>T; while( T-- ) 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...