仿照题解写的,后三个测试点TLE,求助各位大佬!
查看原帖
仿照题解写的,后三个测试点TLE,求助各位大佬!
470540
U202015358楼主2022/4/27 10:44

#include<cstdio>
inline int max(int a,int b){return a>b?a:b;}
using namespace std;
int a[300000];
int n;
const int minn = -19260817;
int dp(int l,int r){
	if(l==r) return a[l];
	int sum=0,left=minn,right=minn;
	int mid = ( l + r ) >> 1;
	for(int i=mid;i>=1;i--){
		sum+=a[i];
		left=max(left,sum);
	}
	sum=0;
	for(int i=mid+1;i<=r;i++){
		sum+=a[i];
		right=max(right,sum);
    }
    return max(max(dp(l,mid),dp(mid+1,r)),right+left);
} 
int main() { // 以下主函数  
    
    scanf("%d", &n );
    for( int i = 1 ; i <= n ; i++ ) {
        scanf("%d" , &a[i] );
    }
    printf("%d" , dp(1 , n) ); 
    return 0;
}
2022/4/27 10:44
加载中...