Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- typedef long long ll;
- struct tt{
- int pos, data;
- };
- tt a[500][500];
- vector <ll> temp2;
- int main()
- {
- int n, l, k, x, y;
- cin >> l >> n >> k;
- vector <ll> temp, dp, temp1, dp1;
- vector <vector <ll> > c(n);
- for (int i = 0; i < l; i++)
- temp1.push_back(0);
- for (int i = 0; i < n; i++){
- temp2 = temp1;
- for (int j = 0; j < 4; j++){
- cin >> x >> y;
- for (int ii = 0; ii <= x; ii++)
- temp2[ii] += y / (1 + x - ii);
- }
- for (int j = 0; j < temp2.size(); j++)
- c[i].push_back(temp2[j]);
- }
- dp = temp1;
- /*for (int i = 0; i < c.size(); i++){
- for (int j = 0; j < c[i].size(); j++)
- cout << c[i][j] << " ";
- cout << endl;
- }*/
- for (int ii = 0; ii < c.size(); ii++){
- dp1 = temp1;
- for (int i = 0; i < dp.size(); i++)
- for (int j = max(0, i - k); j <= min(l - 1, i + k); j++)
- dp1[j] = max(dp1[j], dp[i] + c[ii][j]);
- dp = dp1;
- /*for (int i = 0; i < dp.size(); i++)
- cout << dp[i] << " ";
- cout << endl;*/
- }
- ll mxx = 0;
- for (int i = 0; i < dp.size(); i++)
- mxx = max(mxx, dp[i]);
- cout << mxx << endl;
- return 0;
- }
- /*
- 9 1 9
- 2 6000 2 6000 2 6000 2 6000
- 9 7 9
- 2 6000 2 6000 2 6000 2 6000
- 2 6000 2 6000 2 6000 2 6000
- 2 6000 2 6000 2 6000 2 6000
- 2 6000 2 6000 2 6000 2 6000
- 2 6000 2 6000 2 6000 2 6000
- 2 6000 2 6000 2 6000 2 6000
- 2 6000 2 6000 2 6000 2 6000
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement