fork download
  1. #include <iostream>
  2. #define INF 1000000000
  3. using namespace std;
  4.  
  5. int n, m, dist[100] = {1,5,2,6,8,3,2}, dp[1000][1000];
  6.  
  7. int solve(int index, int count){
  8. if(index == n){
  9. if(count == m) return 0;
  10. else return INF;
  11. }
  12. if(dp[index][count] != -1) return dp[index][count];
  13. int sum = 0, ans = INF;
  14. for(int i = index;i < n;i++){
  15. sum += dist[i];
  16. int val = max(sum, solve(i+1, count+1));
  17. ans = min(ans, val);
  18. }
  19. return dp[index][count] = ans;
  20. }
  21.  
  22. int main() {
  23. // your code goes here
  24. n = 7, m = 3;
  25. for(int i = 0;i < 1000;i++) for(int j = 0;j < 1000;j++) dp[i][j] = -1;
  26. cout << solve(0, 0) << endl;
  27. return 0;
  28. }
  29.  
Success #stdin #stdout 0s 7372KB
stdin
Standard input is empty
stdout
13