首页 > 代码库 > HDU 1003
HDU 1003
本来不想写的
以前写过一次没过
现在每次打开HDU都会显示没完成
看着不爽
直接暴力肯定超时
其实那数组遍历一次就可以了
注意下标变化的条件
1 #include <iostream> 2 3 using namespace std; 4 5 int main() 6 { 7 int T; 8 cin>>T; 9 int t = 0;10 while(T--)11 {12 t++;13 int N;14 cin>>N;15 16 int begin = 1;17 int end = 1;18 int left = 1;//这个是每一次累加的左端19 int max = 0;20 int sum =0;21 22 for(int i = 1;i<=N;i++)23 {24 int temp;25 cin>>temp;26 if(i==1)27 {28 max = temp;29 }30 sum+=temp;31 if(max<sum)//把这一次累加更新为最大的32 {33 max = sum;34 begin = left;35 end = i;36 }37 if(sum<0)//小于0了那么前面都不要了38 {39 sum = 0;40 left = i+1;//此位为负,直接到下一位41 }42 }43 44 cout<<"Case "<<t<<":"<<endl<<max<<" "<<begin<<" "<<end<<endl;45 46 if(T)47 cout<<endl;48 49 }50 return 0;51 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。