Cod sursa(job #1879915)

Utilizator wilson182Alexandrina Panfil wilson182 Data 15 februarie 2017 11:26:43
Problema Subsecventa de suma maxima Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.47 kb
#include<bits/stdc++.h>
#define N 6000020
using namespace std;
int n, a[N], i, dp[N], s=0, bg, b=1, e;
int main(){
	
	freopen("ssm.in", "r", stdin);
	freopen("ssm.out", "w", stdout);
	scanf("%d", &n);
	for(i=1;i<=n;i++) {
		scanf("%d", &a[i]);
		dp[i]=a[i];
	}
	dp[0]=0;
	for(i=1;i<=n;i++){
		if(dp[i]<dp[i-1]+a[i]) dp[i]=dp[i-1]+a[i];else b=i;
		if(dp[i]>s){
			s=dp[i];
			bg=b;
			e=i;
		} 
		
	}
	printf("%d ", s);
	printf("%d %d", bg, e);
	return 0;	
}