Cod sursa(job #2766592)

Utilizator KlinashkaDiacicov Calin Marian Klinashka Data 2 august 2021 14:10:03
Problema Subsecventa de suma maxima Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.55 kb
#include <cstdio>
using namespace std;

int n, a[6000000], stmax=0, drmax=0;

int main() {
    freopen("ssm.in", "r", stdin);
    freopen("ssm.out", "w", stdout);
	scanf("%d", &n);
	for(int i=0;i<n;i++)
		scanf("%d", &a[i]);
    long long ans = a[0];
    long long cur = (a[0]>=0)?a[0]:0;
	int stcur = (a[0]>=0)?0:1;
	for(int i=1;i<n;i++) {
		cur += a[i];
		if(cur>ans) {
			ans = cur;
			stmax = stcur;
			drmax = i;
		}
		if(cur<0) {
			stcur = i+1;
	        cur = 0;
		}
	}
	printf("%lld %d %d", ans, stmax+1, drmax+1);
	return 0;
}