제출 #1326590

#제출 시각아이디문제언어결과실행 시간메모리
1326590tuncay_pashaBank (IZhO14_bank)C++20
52 / 100
1101 ms98908 KiB
/** * author: tuncypasha * file: c.cpp * created: 17.02.2026 22:58 **/ #include <bits/stdc++.h> #include <bits/extc++.h> #define pasha ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); #define int long long #define ff first #define ss second #define pb push_back #define all(v) begin(v), end(v) using namespace std; using namespace __gnu_pbds; // mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); constexpr int N = 2e5 + 5, mod = 1e9 + 7, p = 37, oo = 1e16; void _() { int n, m; cin >> n >> m; vector<int> a(n + 1); for (int i = 1; i <= n; ++i) cin >> a[i]; vector<int> b(m); for (int i = 0; i < m; ++i) cin >> b[i]; vector<vector<int>> dp((1LL << m) + 5, vector<int>(n + 5, 0)); vector<int> sum((1LL << m) + 5, 0); for (int mask = 0; mask < (1LL << m); ++mask) { int S = 0; for (int i = 0; i < m; ++i) { if (mask & (1LL << i)) S += b[i]; } sum[mask] = S; } dp[0][0] = 1; for (int i = 1; i <= n; ++i) { for (int mask = 0; mask < (1LL << m); ++mask) { for (int submask = mask; submask; submask = (submask - 1) & mask) { int out = (mask ^ submask); dp[mask][i] |= (dp[out][i - 1] && sum[submask] == a[i]); } } } for (int mask = 0; mask < (1LL << m); ++mask) { if (dp[mask][n]) return cout << "YES" << '\n', void(); } cout << "NO" << '\n', void(); } signed main() { pasha int t = 1; // cin >> t; for (int cs = 1; cs <= t; ++cs) { _(); // cout << '\n'; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...