HDU 1003 Max Sum
来源:互联网 发布:詹姆斯五项数据第一 编辑:程序博客网 时间:2024/05/16 03:04
连接地址: http://acm.hdu.edu.cn/showproblem.php?pid=1003
给你一串数字,你要从中找到该数字串中一连串的数字求和的最大值。
例如:给你6,-1,5,4,-7,最大和是6+ (-1) + 5 + 4 = 14。
我的思路是以第一个数字开始加,一旦和值为负,跳出;然后以第二个数字开始加,重复上述。
但是有个不起眼的坑,我就被坑在这里了。就是至少要取一个数字,那么输入全为负数和零的情况,就要注意一下。
我的解决方法就是先把最大和值赋值为-1000,这样便解决了这个问题。
然后按格式要求输出结果就可以了。
以下是我AC的代码:
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
int i,j,k,l=0,r=0,s,sum,n,m,a[100010];
scanf("%d",&n);
for (i=1;i<=n;i++)
{
scanf("%d",&m);
for (j=0;j<m;j++)
{
scanf("%d",&a[j]);
}
for (sum=-1000,j=0;j<m;j++)
{
for (s=0,k=j;k<m;k++)
{
s+=a[k];
if (s>sum)
{
l=j+1;
r=k+1;
sum=s;
}
if (s<0) break;
}
}
printf("Case %d:\n",i);
if (i==n) printf("%d %d %d\n",sum,l,r);
else printf("%d %d %d\n\n",sum,l,r);
}
return 0;
}
- HDU 1003 Max Sum
- hdu 1003 Max Sum
- hdu 1003 Max Sum
- HDU-1003 max sum
- HDU 1003 - Max Sum
- HDU 1003 Max Sum
- hdu 1003 Max Sum
- HDU 1003 Max Sum
- HDU 1003 Max Sum
- hdu 1003 max sum
- HDU 1003 Max Sum
- hdu 1003 Max Sum
- HDU 1003 Max Sum
- hdu 1003 Max Sum
- HDU 1003 Max Sum
- Hdu 1003 - Max Sum
- HDU-1003-Max Sum
- hdu - 1003 - Max Sum
- 黑马笔记2:junit测试框架配置
- 操作iframe
- ACM路程的开端
- 树立良好的观念是进步的开始
- NOJ 1002 将军问题
- HDU 1003 Max Sum
- NOJ 1175 Dress, Left Dress!
- NOJ [1173] Birdlike Angry Pig
- HDU 1116 Play on Words
- UVA 10557 XYZZY
- ACM之纠结篇:Ordering Tasks
- N 封信 with N 信封
- HDU 1202 The calculation of GPA
- HDU 1266 Reverse Number