文章标题

原创 2015年11月18日 00:24:58

Given a sequence of K integers { N​1​​ , N​2, …, N​K​​ }. A continuous subsequence is defined to be { N​i​​ , N​i+1​​ , …, N​j​​ } where 1≤i≤j≤K. The Maximum Subsequence is the continuous subsequence which has the largest sum of its elements. For example, given sequence { -2, 11, -4, 13, -5, -2 }, its maximum subsequence is { 11, -4, 13 } with the largest sum being 20.

Now you are supposed to find the largest sum, together with the first and the last numbers of the maximum subsequence.

Input Specification:

Each input file contains one test case. Each case occupies two lines. The first line contains a positive integer K (≤10000). The second line contains K numbers, separated by a space.

Output Specification:

For each test case, output in one line the largest sum, together with the first and the last numbers of the maximum subsequence. The numbers must be separated by one space, but there must be no extra space at the end of a line. In case that the maximum subsequence is not unique, output the one with the smallest indices i and j (as shown by the sample case). If all the K numbers are negative, then its maximum sum is defined to be 0, and you are supposed to output the first and the last numbers of the whole sequence.

Sample Input:

10                                   
-10 1 2 3 4 -5 -23 3 7 -21

Sample Output:

10 1 4

#include <stdio.h>
int main(){
    int a[10000],i=0,top=0,sum=0,h,r,t,z=1,l,x=1;
    int k,k1;
    scanf("%d",&k);
    k1=k;
    while(k1){
        scanf("%d",&a[i]);
        i++;
        k1--;
     }
    h=r=t=0;
    l=a[0];
    for(i=0;i<k;i++){
    if(a[i]>0) {
        z=0;
    }
//  else if(i>0){
//      if(a[i]>l){
//          l=a[i];
//      }
//  }
    if(a[i]==0) x=0;
        sum+=a[i];
        if(sum<0){
            sum=0;
            t=i+1;      
        }

        if(sum>top) {
            top=sum; 
            r=i;
            if(t!=h){
                h=t;
            }
        }
    } 
    if(z){
        switch(x){
            case 1:
                top=0;
                h=0;
                r=k-1;
                break;
            case 0:
                top=0;
                a[h]=0;
                a[r]=0;
        }
    }
    printf("%d %d %d",top,a[h],a[r]); 
    return 0;
} 

一开始没考虑到如果全为负数怎么处理
于是加入z=1用于判断是否有大于零的数

    if(a[i]>0) {
        z=0;
    }else if(i>0){
        if(a[i]>l){
            l=a[i];
        }

结果读题不仔细,全为0时的输出要求完全不一样,l的数据记录也没有意义。
x是再后来加的,用于0和负数混合输入的情况

文章标题自动标注程序

  • 2015年06月25日 17:04
  • 6.93MB
  • 下载

在文章中主标题和副标题的格式问题

请问:如果 大标题居中书写。正常情况下,副标题要在大标题第三个字下开始写破折号,是吗?那如果格数不够,副标题写不开了怎么办?可以把副标题居中写吗? 还是把 大标题和副标题整体前移?不是论文,手写的,公...

文章标题上下轮番滚动.zip

  • 2012年09月04日 12:31
  • 28KB
  • 下载

文章标题CCF201509-4高速公路

问题描述   某国有n个城市,为了使得城市间的交通更便利,该国国王打算在城市之间修一些高速公路,由于经费限制,国王打算第一阶段先在部分城市之间修一些单向的高速公路。   现在,大臣们帮国王拟了一个...

文章标题 UVALive 7045:Last Defence(辗转相除思想)

Last DefenceGiven two integers A and B. Sequence S is defined as follow: • S0 = A • S1 = B • Si = |Si...

文章标题:Android常见控件ImageView的使用方法

ImageView是用于在界面上展示图片的一个控件,通过它可以上我们的程序界面变得更加丰富多彩。我们需要在drawable中放一张格式为Png的图片。那我们在界面上展示这张图片吧。我们在activit...
  • wen0801
  • wen0801
  • 2017年04月06日 00:16
  • 103

文章标题 spark读取文件过程中发现的问题解决记录

spark读取本地文件的方式是给路径加上file://,例如sc.textFile(“/opt/software/spark1.4/README.md”),我发现一个问题就是,我的spark软件安装在...

一篇好的原创文章首先从标题开始做起

标题是内容的眼睛,一个好的标题应该不仅可以使用户了解到页面的主要内容,还应该引起用户阅读内容的星期。在撰写文章标题时除要重视和布局分词、以命中更多的长尾搜索词外,还应该能够吸引用户点击。    ...

文章标题spring-boot + spring-data-jpa 实现简单的增删改查

JPA(Java Persistence API)定义了一系列对象持久化的标准,目前实现这一规范的产品有Hibernate、TopLink等。 示例环境 jdk 1.8 spring-boot 2....
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:文章标题
举报原因:
原因补充:

(最多只允许输入30个字)