首页 > 代码库 > rqnoj 打水漂

rqnoj 打水漂

题目描述

题目描述:

君不知,打靶大牛goleenuoer可喜欢打水漂了,他的靶子可以打到河面上的任何一条鱼,可是他的水漂打得实在是烂,无论怎么打那石子只会在河面上跳跃两次就“扑通”了.这天他又来打了.这条宽w米,每隔一米都会有一条鱼,每条鱼都有它的美观值.他想知道如何打才能得到两条鱼之间最大的美观值总和.刚接触OI的他想请您来解答,您能帮助他吗???

 

输入格式

输入文件包含n+1个整数,第一行为一个整数n(n<=10000).从第二行工n个数,第i个整数表示第i条鱼的美观值范(围为-500..500).当所有整数都为负数时输出0.

输出格式

输出文件包含两行,第一行为石子的起点和落点,用空格隔开.第二行为一个整数表示所得到的两条鱼之间美观值总和.

#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<cmath>#include<cstdlib>#include<algorithm>using namespace std;int n,a[10010],ans,st,en,cnt,sum,temp;int main(){    scanf("%d",&n);    for(int i=1;i<=n;i++)    {        scanf("%d",&a[i]);        if(a[i]<0)        cnt++;    }    if(cnt==n)    printf("0\n");    else    {        sum=0;        temp=1;        st=1;        en=1;        for(int i=1;i<=n;i++)        {            sum+=a[i];            if(sum<0)            {               sum=0;               temp=i+1;            }            else if(sum>ans)            {                 ans=sum;                 st=temp;                 en=i;            }        }    }    printf("%d %d\n",st,en);    printf("%d\n",ans);    return 0;}

  

rqnoj 打水漂