杭电OJ--1003题C++实现
#include<iostream>using namespace std;int a[100000];void solve(int k,int n,int t);int main(){??? int t,n;??? cin>>t;??? for(int i=1;i<=t;i++)??? {??????? cin>>n;??????? for(int j=0;j<n;j++)??????????? cin>>a[j];??????? solve(i,n,t);??? }??? return 0;}void solve(int k,int t){??? int sum=0,max_num=-1000,end_tag,start_tag=1,temp=1;??? for(int i=0;i<n;i++)??? {??????? sum+=a[i];??????? if(sum>max_num)??????? {??????????? max_num = sum;??????????? start_tag = temp;??????????? end_tag = i+1;??????? }??????? if(sum<0)//这个地方是最为关键的地方??????? {??????????? temp=i+2;??????????? sum=0;??????? }??? }??? cout<<"Case "<<k<<":"<<endl;??? if(k!=t)??? cout<<max_num<<" "<<start_tag<<" "<<end_tag<<endl<<endl;??? else??????? cout<<max_num<<" "<<start_tag<<" "<<end_tag<<endl;} (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |