Advertisement
SorahISA

105335K - Kid Rally

Sep 19th, 2024
42
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.58 KB | Source Code | 0 0
  1. #ifndef MyGO
  2. #define MyGO
  3. #include MyGO __FILE__ MyGO
  4.  
  5. void chmax(int& x, int y) {
  6.     if (x < y)
  7.         x = y;
  8. }
  9.  
  10. signed main() {
  11.     fast;
  12.  
  13.     int n, m;
  14.     cin >> n >> m;
  15.     vector<vector<int>> mp(n, vector<int>(m));
  16.     for (int i = 0; i < n; i++) for (int j = 0; j < m; j++)
  17.         cin >> mp[i][j];
  18.  
  19.     vector<int> mx(n), suf(n, 0);
  20.     for (int i = n-1; i > 0; i--) {
  21.         for (int j = 0; j < m; j++)
  22.             chmax(mx[i], mp[i][j]);
  23.         suf[i-1] = suf[i] + mx[i];
  24.     }
  25.  
  26.  
  27.     int k = n*9+1;
  28.     vector<int> dp(k, -1), pdp;
  29.     dp[mp[0][0]] = mp[0][m-1];
  30.     int ans = max(
  31.         (mp[0][0]+suf[0])*mp[0][m-1],
  32.         mp[0][0]*(suf[0]+mp[0][m-1])
  33.     );
  34.     for (int i = 1; i < n; i++) {
  35.         pdp = dp;
  36.         int s = mp[i].back();
  37.         array<int,10> tt{};
  38.         tt.fill(-1);
  39.         for (int j = m-2; j >= 0; j--) {
  40.             auto v = mp[i][j];
  41.             chmax(tt[v], s);
  42.             s = max(s, v);
  43.         }
  44.         for (int v = 0; v < 10; v++) if (tt[v] != -1)
  45.             for (int r = 0; r+v < k; r++)
  46.                 if (pdp[r] != -1)
  47.                     chmax(dp[r+v], pdp[r]+tt[v]);
  48.         int o = suf[i];
  49.         for (int r = 0; r < k; r++) if (dp[r] != -1)
  50.             chmax(ans, max(dp[r] * (r+o), (dp[r]+o) * r));
  51.     }
  52.     cout << ans << endl;
  53.  
  54.     return 0;
  55. }
  56.  
  57. #else
  58.  
  59. #include <bits/stdc++.h>
  60. using namespace std;
  61.  
  62. #ifdef DEBUG
  63. #define fast
  64. #define safe cerr<<__PRETTY_FUNCTION__<<" line "<<__LINE__<<" safe\n"
  65. #else
  66. #define fast cin.tie(0)->sync_with_stdio(0)
  67. #endif
  68.  
  69. using ll = long long;
  70.  
  71. #endif
  72.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement