제출 #881002

#제출 시각아이디문제언어결과실행 시간메모리
881002_KuroNeko_은행 (IZhO14_bank)C++17
100 / 100
98 ms16984 KiB
#include<bits/stdc++.h> // #include <ext/pb_ds/assoc_container.hpp> // #include <ext/pb_ds/tree_policy.hpp> // using namespace __gnu_pbds; // #define ordered_set tree<ll, null_type, less_equal<ll>, rb_tree_tag, tree_order_statistics_node_update> // #pragma GCC optimize("O3,unroll-loops") // #pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt") using namespace std; typedef long long ll; typedef long double ldb; typedef vector<int> vi; typedef vector<long long> vl; typedef vector<double> vdb; typedef vector<vector<int>> vvi; typedef vector<vector<ll>> vvl; typedef vector<string> vs; typedef set<int> si; typedef set<long long> sl; typedef set<double> sdb; typedef set<string> ss; typedef set<char> sc; typedef pair<int, int> pii; typedef pair<ll, ll> pll; #define ftb(i, a, b) for (int i = a, _b = b; i <= _b; ++i) #define ft(i, a, b) for (int i = a, _b = b; i < _b; ++i) #define fgb(i, a, b) for (int i = a, _b = b; i >= _b; --i) #define fg(i, a, b) for (int i = a, _b = b; i > _b; --i) #define endl "\n" const int N = 20000; bool dp[N + 1]; int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int n, m; cin >> n >> m; vi a(n), c(m); ft(i, 0, n) { cin >> a[i]; } ft(i, 0, m) { cin >> c[i]; } int N = 1 << m; vector<pll> dp(N, { 0,0 }); ft(i, 1, N) { ft(j, 0, m) { if (i & (1 << j)) { int tmp = i ^ (1 << j); if (dp[tmp].second + c[j] == a[dp[tmp].first]) { if (dp[tmp].first + 1 > dp[i].first) { dp[i].first = dp[tmp].first + 1; dp[i].second = 0; } } else { if (dp[tmp].first > dp[i].first) { dp[i].first = dp[tmp].first; dp[i].second = dp[tmp].second + c[j]; } else if (dp[tmp].first == dp[i].first) { dp[i].second = dp[tmp].second + c[j]; } } } } if (dp[i].first == n) { cout << "YES" << endl; return 0; } } cout << "NO" << endl; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...