fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int main() {
  5. ios_base::sync_with_stdio(false);
  6. cin.tie(NULL);
  7.  
  8. int n;
  9. cin >> n;
  10.  
  11. vector<int> v(n + 1);
  12. for (int i = 1; i <= n; i++)
  13. cin >> v[i];
  14.  
  15. int maxSum = v[1];
  16. int curSum = v[1];
  17. int bestStart = 1;
  18. int bestEnd = 1;
  19. int tempStart = 1;
  20.  
  21. for (int i = 2; i <= n; i++) {
  22. // daca e mai bine sa incepem un subsir nou de la i
  23. if (curSum + v[i] < v[i]) {
  24. curSum = v[i];
  25. tempStart = i;
  26. } else {
  27. curSum += v[i];
  28. }
  29.  
  30. // actualizam maximul global
  31. if (curSum > maxSum) {
  32. maxSum = curSum;
  33. bestStart = tempStart;
  34. bestEnd = i;
  35. }
  36. }
  37.  
  38. cout << maxSum << "\n";
  39. cout << bestStart << " " << bestEnd << "\n";
  40.  
  41. return 0;
  42. }
Success #stdin #stdout 0s 5324KB
stdin
4
3 -1 2 -1
stdout
4
1 3