您的位置:首页 > 产品设计 > UI/UE

【PAT甲级】1007. Maximum Subsequence Sum (25)

2016-09-30 15:01 525 查看
#include <stdio.h>

int main(int argc, char *argv[]) {
int k;
scanf("%d", &k);
int a[k];
int maxsum[k];
int from[k];
int i;
for (i = 0; i < k; i++) {
scanf("%d", &a[i]);
}
maxsum[0] = a[0];
from[0] = 0;
int max = maxsum[0];
int start = 0;
int end = 0;
for (i = 1; i < k; i++) {
if (maxsum[i - 1] >= 0) {
maxsum[i] = maxsum[i - 1] + a[i];
from[i] = from[i - 1];
} else {
maxsum[i] = a[i];
from[i] = i;
}
if (max < maxsum[i]) {
max = maxsum[i];
start = from[i];
end = i;
}
}
if (max < 0) {
max = 0;
start = 0;
end = k - 1;
}
printf("%d %d %d\n", max, a[start], a[end]);

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: