zoukankan      html  css  js  c++  java
  • HDU 1003

    1. #include <iostream>  
    2. using namespace std;  
    3. int main()  
    4. {  
    5.     int j,i,k,n,m,t;  
    6.     int a[100002];  
    7.     scanf("%d",&t);  
    8.     for (j=1;j<=t;j++)  
    9.     {  
    10.         scanf("%d",&n);  
    11.         for (i=0;i<n;i++)  
    12.         {  
    13.             scanf("%d",&a[i]);  
    14.         }  
    15.         int sum=0,maxsum=-1001,first =0, last = 0, temp = 1;  
    16.         for (i=0;i<n;i++)  
    17.         {  
    18.             sum += a[i];  
    19.             if (sum > maxsum)  
    20.             {  
    21.                 maxsum = sum;first = temp;last = i+1;  
    22.             }  
    23.             if (sum < 0)  
    24.             {  
    25.                 sum = 0;temp = i+2;  
    26.             }  
    27.         }  
    28.   
    29.         printf("Case %d: %d %d %d ",j,maxsum,first,last);  
    30.         if (j!=t)  
    31.         {  
    32.             printf(" ");  
    33.         }  
    34.     }  
    35.       
    36.     return 0;  

    1. }  
    2. 随着i不断更新maxsum的值,如果为负数,加上下一个数不论这个数是正负,和值必定比这个数下,所以置前负值为0.若全为负数,则只需保留当前最大的负数即可。

  • 相关阅读:
    2019 SDN上机第7次作业
    2019 SDN上机第六次作业
    2019 SDN上机第5次作业
    SDN课程阅读作业(2)
    2019 SDN上机第4次作业
    2019 SDN阅读作业
    2019 SDN上机第3次作业
    第09组 团队Git现场编程实战
    预习非数值数据的编码方式
    预习原码补码
  • 原文地址:https://www.cnblogs.com/mingrigongchang/p/6246311.html
Copyright © 2011-2022 走看看