Submission #1278002

#TimeUsernameProblemLanguageResultExecution timeMemory
1278002toplion7Bank (IZhO14_bank)C++20
0 / 100
1 ms580 KiB
#include <bits/stdc++.h> using namespace std; #define int long long const int inf = 1e18 + 7; const int MOD = 1000000007; const int MOD1 = 998244353; const int MOD2 = 1e9 + 9; const int MAXXX = 1e3 + 5; const int MAXXXx = 1e3 + 5; const int OFFSET = 200; void Make_set(vector<int>& v) { set<int> s(v.begin(), v.end()); v.assign(s.begin(), s.end()); } int Pow(int n, int k, int mod) { int res = 1; while (k > 0) { if (k % 2 == 1) { res = (res * n) % mod; } n = (n * n) % mod; k /= 2; } return res; } vector<pair<int, vector<int>>> dp(MAXXX); int x[MAXXX]; signed main() { ios::sync_with_stdio(false); cin.tie(nullptr); int T ; // cin >> T; T = 1; for (int K = 0; K < T; K++) { map<int, int> mp; 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]; mp[b[i]]++; } dp[0].first = 1; for(int i = 0; i < m; i++) { for(int j = MAXXX; j >= b[i]; j--) { if(dp[j - b[i]].first > 0) { dp[j].first++; dp[j].second.push_back(b[i]); x[j] = j - b[i]; if(mp[j - b[i]]) { dp[j].second.push_back(x[j]); } } } } // for(int i = 0; i < MAXXX; i++) // { // if(dp[i].first) // { // cout << i << endl; // for(int j = 0; j < dp[i].second.size(); j++) // { // cout << dp[i].second[j] << ' '; // } // cout << endl << "_______________" << endl; // } // } if(n == 1) { if(dp[a[0]].first > 0) { cout <<"YES"; } else cout << "NO"; } } 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...