fork(2) download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define FORE(i, a, b) for(int i = (a); i <= (b); ++i)
  4. #define FORD(i, a, b) for(int i = (a); i >= (b); --i)
  5. #define FOR(i, a, b) for(int i = (a); i < (b); ++i)
  6. #define FORIT(i,v) for(__typeof((v).begin()) i = (v).begin(); i != (v).end(); ++i)
  7. #define fi first
  8. #define se second
  9. #define ll long long
  10. #define mp make_pair
  11. #define pb push_back
  12. #define all(a) a.begin(),a.end()
  13. #define sqr(x) (x)*(x)
  14. #define endl '\n'
  15.  
  16. template <typename G> inline void read(G &x)
  17. {
  18. x = 0; char c;
  19. while(!isdigit(c = getchar()));
  20. do{x = x*10 + c - '0';} while(isdigit(c = getchar()));
  21. }
  22.  
  23. template <typename G> inline void write(G x)
  24. {
  25. if (x > 9) write(x/10);
  26. putchar(x%10 + '0');
  27. }
  28.  
  29. template <class T> inline T min(T a,T b,T c){ return min(a,min(b,c)); }
  30. template <class T> inline T min(T a,T b,T c,T d) { return min(a,min(b,c,d)); }
  31. template <class T> inline T max(T a,T b,T c){ return max(a,max(b,c)); }
  32. template <class T> inline T max(T a,T b,T c,T d) { return max(a,max(b,c,d)); }
  33.  
  34.  
  35.  
  36. const int MAXN = 1e5 * 5;
  37. const int base = 1e9 + 7;
  38. const int N = 50000;
  39.  
  40.  
  41. int n , k;
  42. int a[N] , f[N];
  43. int ans;
  44.  
  45. int main()
  46. {
  47. ios_base::sync_with_stdio(0); cin.tie(0);
  48. cin>> n >> k;
  49. FORE(i,1,n) cin>> a[i];
  50. FORE(i,1,n) f[i] = -base;
  51. FORE(i,1,n) {
  52. FORD(j,i-1,0)
  53. if (i - j > k) break;
  54. else {
  55. f[i] = max(f[i] , f[j] + a[i]);
  56. }
  57. ans = max(ans , f[i]);
  58. }
  59. cout<< ans <<endl;
  60. return 0;
  61. }
  62.  
Success #stdin #stdout 0s 16448KB
stdin
Standard input is empty
stdout
0