diff --git "a/ZJU_MOOC_\346\225\260\346\215\256\347\273\223\346\236\204/01-\345\244\215\346\235\202\345\272\2462 Maximum Subsequence Sum (25 \345\210\206).cpp" "b/ZJU_MOOC_\346\225\260\346\215\256\347\273\223\346\236\204/01-\345\244\215\346\235\202\345\272\2462 Maximum Subsequence Sum (25 \345\210\206).cpp" new file mode 100644 index 0000000..c734994 --- /dev/null +++ "b/ZJU_MOOC_\346\225\260\346\215\256\347\273\223\346\236\204/01-\345\244\215\346\235\202\345\272\2462 Maximum Subsequence Sum (25 \345\210\206).cpp" @@ -0,0 +1,24 @@ +#include +#include +using namespace std; +int main() { + int n; + scanf("%d", &n); + vector v(n); + int leftindex = 0, rightindex = n - 1, sum = -1, temp = 0, tempindex = 0; + for (int i = 0; i < n; i++) { + scanf("%d", &v[i]); + temp = temp + v[i]; + if (temp < 0) { + temp = 0; + tempindex = i + 1; + } else if (temp > sum) { + sum = temp; + leftindex = tempindex; + rightindex = i; + } + } + if (sum < 0) sum = 0; + printf("%d %d %d", sum, v[leftindex], v[rightindex]); + return 0; +}