uva507

来源:互联网 发布:centos yum nginx 编辑:程序博客网 时间:2024/06/05 09:55

题目大意:
一段公交车路,各个车站为1,2,3…s, 各个车站之间的景色值是不同的, 求一段连续的车站的景色值之和最大是多少。

思路:
http://blog.csdn.net/hcbbt/article/details/10454947

代码:

#include <iostream>using namespace std;#include <stdio.h>#include <cstring>int ss;int main() {    int n,s;    int sum,Max;    int T = 0,l,r,bg,ed;    scanf("%d",&n);    while(n--) {        T++;        scanf("%d",&s);        l = r =bg =ed = 1;        sum = -0x3f3f3f3f;        Max = - 0x3f3f3f3f;        for(int i = 1; i < s; i++) {            scanf("%d",&ss);            if(sum + ss < ss) {                sum = ss;                l = i ;            }            else                sum = sum +ss;            if(sum > Max || (sum == Max && i - l > ed - bg)) {                Max = sum;                bg = l;                ed = i;            }        }        if(Max <= 0 )            printf("Route %d has no nice parts\n",T);        else            printf("The nicest part of route %d is between stops %d and %d\n",T,bg,ed+1);    }    return 0;}
0 0