hdu 1003 Max Sum 去掉数组后的方法
来源:互联网 发布:光影魔术手mac内测版 编辑:程序博客网 时间:2024/05/22 00:08
Max Sum
Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other)
Total Submission(s) : 104 Accepted Submission(s) : 31
Problem Description
Given a sequence a[1],a[2],a[3]......a[n], your job is to calculate the max sum of a sub-sequence. For example, given (6,-1,5,4,-7), the max sum in this sequence is 6 + (-1) + 5 + 4 = 14.
Input
The first line of the input contains an integer T(1<=T<=20) which means the number of test cases. Then T lines follow, each line starts with a number N(1<=N<=100000), then N integers followed(all the integers are between -1000 and 1000).
Output
For each test case, you should output two lines. The first line is "Case #:", # means the number of the test case. The second line contains three integers, the Max Sum in the sequence, the start position of the sub-sequence, the end position of the sub-sequence. If there are more than one result, output the first one. Output a blank line between two cases.
Sample Input
2
5 6 -1 5 4 -7
7 0 6 -1 1 -6 7 -5
5 6 -1 5 4 -7
7 0 6 -1 1 -6 7 -5
Sample Output
Case 1:
14 1 4
Case 2:
7 1 6
14 1 4
Case 2:
7 1 6
#include<stdio.h>int a[100010];int main(){ int n,i,start,end,sum,max,sta,ti,k; scanf("%d",&ti); for(k=1;k<=ti;k++) { sum=0;max=-1111; scanf("%d",&n); for(i=1;i<=n;i++) scanf("%d",&a[i]); start=sta=end=1; for(i=1;i<=n;i++) { sum=sum+a[i]; if(sum>max)//这个if要放在下面的if语句的上面 { max=sum; end=i;start=sta; } if(sum<0)//这个要放在下面 因为要是一开始输入的只有一个负数的时候 就会搞错了 WA了好几次 都是因为这里 { sta=i+1; sum=0; } } printf("Case %d:\n",k); printf("%d %d %d\n",max,start,end); if(k!=ti) printf("\n"); } return 0;}
#include <stdio.h>int main(){ int i,j,m,n,max; int s,a,b; int x1,x2; while(scanf("%d",&n)!=EOF&&n!=0) { scanf("%d",&s); max=s; x1=s; x2=s; int x3,x4; x3=x4=s; a=s; for(i=2;i<=n;i++) { scanf("%d",&m); b=m; if(s+m<m) { x1=x2=m; s=m; } else { x2=m; s=s+m; } if(max<s) { x3=x1; x4=x2; max=s; } } if(max<0) { max=0; x3=a; x4=b; } printf("%d %d %d\n",max,x3,x4); } 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
- Linux下Socket写http协议下载文件代码以及说明
- 测试大牛的blog
- 享元模式(Flyweight Pattern)
- PHP判断字符串相等或不等
- 深入浅出C++虚函数表
- hdu 1003 Max Sum 去掉数组后的方法
- Linux中硬盘分区的表示方法
- 将数据库移到令一台机
- Lua中require用法二及仿面向对象式编程
- Ogre 1.7.2中的地形教程
- i5 540m vs i5 580m
- The user operation is waiting for "Building workspace" to complete
- 开始重装系统
- 【 mount/umount系统调用】