nyoj 745 螞蟻的難題(二)
阿新 • • 發佈:2017-06-20
clas cnblogs 測試數據 style ont != scan pre 表示
螞蟻的難題(二)
時間限制:1000 ms | 內存限制:65535 KB
難度:3
描述
下雨了,下雨了,螞蟻搬家了。
已知有n種食材需要搬走,這些食材從1到n依次排成了一個圈。小螞蟻對每種食材都有一個喜愛程度值Vi,當然,如果Vi小於0的時候,表示螞蟻討厭這種食材。因為馬上就要下雨了,所以螞蟻只能搬一次,但是能夠搬走連續一段的食材。時間緊急,你快幫幫小螞蟻吧,讓它搬走的食材喜愛值和最大。
輸入
有多組測試數據(以EOF結尾)。
每組數據有兩行,第一行有一個n,表示有n種食材排成了一個圈。(1 <= n<= 50000)
第二行分別有n個數,代表螞蟻對第n種食材的喜愛值Vi。(-10^9 <= Vi <= 10^9)
輸出
輸出小螞蟻能夠搬走的食材的喜愛值總和的最大。
樣例輸入
3
3 -1 2
5
-8 5 -1 3 -9
樣例輸出
5
7
#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; int main() { int n,i,a; while(scanf("%d",&n)!=EOF) { long long Max=0,Min=0,v1=0,v2=0,sum=0; for(int i=1;i<=n;i++) { scanf("%d",&a); if(v1<=0)v1=a; else v1+=a; Max=max(Max,v1); if(v2>=0)v2=a; else v2+=a; Min=min(Min,v2); sum+=a; } printf("%lld\n",max(Max,sum-Min)); } return 0; }
nyoj 745 螞蟻的難題(二)