Alex_tz307

USACO 2018 December Contest, Gold Problem 3. Teamwork

Mar 14th, 2021
182
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.54 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. ifstream fin("teamwork.in");
  6. ofstream fout("teamwork.out");
  7.  
  8. const int NMAX = 1e4 + 4;
  9. int N, K, a[NMAX], dp[NMAX];
  10.  
  11. void max_self(int &a, int b) {
  12.     a = max(a, b);
  13. }
  14.  
  15. int main() {
  16.     fin >> N >> K;
  17.     for(int i = 1; i <= N; ++i) {
  18.         fin >> a[i];
  19.         int best = 0;
  20.         for(int add = 0; add < min(i, K); ++add) {
  21.             max_self(best, a[i - add]);
  22.             max_self(dp[i], dp[i - add - 1] + (add + 1) * best);
  23.         }
  24.     }
  25.     fout << dp[N] << '\n';
  26. }
  27.  
Advertisement
Add Comment
Please, Sign In to add comment