Submission #1276087

#TimeUsernameProblemLanguageResultExecution timeMemory
1276087nanaseyuzukiBank (IZhO14_bank)C++20
52 / 100
64 ms10732 KiB
#include <bits/stdc++.h> // Author: Kazuki_Will_Win_VOI_8703 #define fi first #define se second #define pii pair<int, int> #define ll long long #define all(a) a.begin(), a.end() using namespace std; const int mn = 1e6 + 5, bm = (1 << 20) + 1; const int inf = 1e9; int n, a[mn], m, b[mn], sum[mn], dp[mn], ok[mn]; vector <int> Megumi[mn]; void backtrack(int i, int mask){ if(i == n + 1){ cout << "YES\n"; exit(0); } for(auto sub : Megumi[a[i]]){ if((mask & sub) == 0){ backtrack(i + 1, mask | sub); } } } void solve(){ cin >> n >> m; for(int i = 1; i <= n; i++) cin >> a[i]; for(int i = 1; i <= m; i++) cin >> b[i]; for(int mask = 0; mask < (1 << m); mask++){ for(int i = 0; i < m; i++){ if(mask & (1 << i)) sum[mask] += b[i + 1]; } Megumi[sum[mask]].push_back(mask); } backtrack(1, 0); cout << "NO\n"; } signed main() { ios::sync_with_stdio(false); cin.tie(nullptr); int t = 1; // cin >> t; while(t--) solve(); return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...