B4133优化求助

B4133 [信息与未来 2014] 最大连续部分和

题目描述

n 个整数排成一排,求其中的最大连续部分和。

至少要选一个数。

输入格式

第一行一个整数,表示 n

第二行 n 个整数 x_1,x_2,\cdots,x_n,相邻两数之间有一个空格。

输出格式

一个整数(即最大的连续的部分和)。

输入输出样例 #1

输入 #1

7
-2 13 12 9 14 -10 2

输出 #1

48

说明/提示

本题相较于原题数据范围有所加强,略微卡常,请使用较快的输入输出方式。

1\le n\le 10^7,0\le |x_i|\le 10^8

My code:

#include <bits/stdc++.h>
using namespace std;
int ans=-1e9;
int main(){
    ios::sync_with_stdio(0);
	cin.tie(0),cout.tie(0);
    int n;
    scanf("%d",&n);
    for(int i=1,a,b;i<=n;i++){
   	  scanf("%d",&a);
      if(i==1){
        b=a;
      }else{
        b=max(a,a+b);
     }
   	 ans=max(ans,b);
   }
   printf("%d",ans);
}

求条。

1 个赞

@方案哥 @杨思越

1 个赞

en 额,问一下你啥级别的

用Kadane来做

我能会才怪呐

提高,但是这道题普及-

1 个赞

普及几

scanf全改cin

过了

@连晨皓 为什么?不应该scanf更快吗?

因为楼主关了同步流还用scanf 逆大天

@稻叶昙 原来如此,这个能有正常输出我都佩服(

近视后人:关流不要用scanf,printf

@2345安全卫士 解决方案

什么东西关同步流还用 scanf

@2345安全卫士 解决方案!

没看见,以后要是想要@我就给我这个帖子点一个赞就行了(