B. Red and Blue | DP | Codeforces
pRoBleM Link :https://codeforces.com/contest/1469/problem/B
Solution :
- #include<bits/stdc++.h>
- using namespace std;
- #define int long long
- #define pII pair<int,int>
- #define mem(a,b) memset(a,b,sizeof(a))
- #define do(i, a, b) for (int i=(a); i<(b); i++)
- #define dor(i,a,b) for (int i = (b)-1; i >= (a); i--)
- #define com(s) (s).begin(),(s).end()
- #define F first
- #define S second
- #define pb push_back
- #define CASES int tc;cin>>tc;while(tc--)
- #define UNIQUE(X) (X).erase(unique(S(X)),(X).end())
- #define IOS ios_base::sync_with_stdio(false); cin.tie(NULL);
- #define TD(R, C) vector< vector<int>> TD((R), vector<int> (C));
- #define GET_POS(c,x) (lower_bound(c.begin(),c.end(),x)-c.begin())
- #define SORT_UNIQUE(c) (sort(c.begin(),c.end()), c.resize(distance(c.begin(),unique(c.begin(),c.end()))))
- #define endl '\n'
- const int M = 1e9 + 7;
- const int MAXN = 10000001;
- const int INF = 1e18;
- //DEBUGGING-TOOL
- #define error(args...) { string _s = #args; replace(_s.begin(), _s.end(), ',', ' '); stringstream _ss(_s); istream_iterator<string> _it(_ss); err(_it, args); }
- void err(istream_iterator<string> it) {}
- template<typename T, typename... Args>
- void err(istream_iterator<string> it, T a, Args... args)
- {
- cerr << *it << " = " << a << endl;
- err(++it, args...);
- }
- //CODE
- int DP[200][200];
- int32_t main()
- {
- IOS
- CASES
- {
- int n;
- cin >> n;
- n++;
- vector < int > a(n);
- do(i, 1, n) cin >> a[i];
- int m;
- cin >> m;
- m++;
- vector <int > b(m);
- do(i, 1, m) cin >> b[i];
- do(i, 0, n) do(ii, 0, m) DP[i][ii] = -INF;
- DP[0][0] = 0;
- int ans = 0;
- do(i, 0, n) do(ii, 0, m){
- if(i) DP[i][ii] = max(DP[i][ii], DP[i - 1][ii] + a[i]);
- if(ii) DP[i][ii] = max(DP[i][ii], DP[i][ii - 1] + b[ii]);
- ans = max(ans, DP[i][ii]);
- }
- cout << ans << '\n';
- }
- }
Comments
Post a Comment