打水漂
题目描述:
君不知,打靶大牛goleenuoer可喜欢打水漂了,他的靶子可以打到河面上的任何一条鱼,可是他的水漂打得实在是烂,无论怎么打那石子只会在河面上跳跃两次就“扑通”了.这天他又来打了.这条宽w米,每隔一米都会有一条鱼,每条鱼都有它的美观值.他想知道如何打才能得到两条鱼之间最大的美观值总和.刚接触OI的他想请您来解答,您能帮助他吗???
输入格式
输入文件包含n+1个整数,第一行为一个整数n(n<=10000).从第二行工n个数,第i个整数表示第i条鱼的美观值范(围为-500..500).当所有整数都为负数时输出0.
输出格式输出文件包含两行,第一行为石子的起点和落点,用空格隔开.第二行为一个整数表示所得到的两条鱼之间美观值总和.
样例输入
10
5 8 -5 -10 5 1 -3 2 4 2
样例输出
0 2
13
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
#include<iostream> using namespace std; int main() { int n,bg1=0,bg2,ed=0,mx=0,s=0; int a[10001]; cin>>n; for(int i=1;i<=n;i++) { cin>>a[i]; s+=a[i]; if(s>mx){mx=s;ed=i;bg2=bg1;} else if(s<=0){bg1=i+1;s=0;} } if(mx==0)cout<<0; else cout<<bg2<<' '<<ed<<endl<<mx; //system("pause"); return 0; } |
Subscribe