HDU1003 最大子序列和问题

题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1003

#include <iostream> 

#include 
<vector> 

using namespace std; 

int MaxSubSum(const vector<int>& v,int& start,int& end) 

{
//求最大子序列和 

int maxSum = -2000,thisSum = 0,i,t=0

for(i=0;i<v.size();++i) 



thisSum 
+= v[i]; 

if(thisSum>maxSum) 



maxSum 
= thisSum; 

start 
= t; 

end 
= i; 



if(thisSum<0



thisSum 
= 0

= i+1





return maxSum;



int main(int argc, char *argv[]) 



int caseNum,curCase=0,nNum,temp,maxSum=0,start=0,end=0

cin
>>caseNum; 

do 



curCase
++

cin
>>nNum; 

vector
<int> v; 

for(int i=0;i<nNum;++i) 



cin
>>temp; 

v.push_back(temp); 



cout
<<"Case "<<curCase<<":"<<endl; 

maxSum 
= MaxSubSum(v,start,end); 

cout
<<maxSum<<" "<<start+1<<" "<<end+1<<endl; 

if(curCase<caseNum) 

cout
<<endl; 

}
while(curCase<caseNum);

return 0;


posted on 2007-12-23 13:47  Phinecos(洞庭散人)  阅读(2383)  评论(3编辑  收藏  举报

导航