Cod sursa(job #1925697)

Utilizator valentin50517Vozian Valentin valentin50517 Data 13 martie 2017 16:23:01
Problema Subsecventa de suma maxima Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.53 kb
#include <bits/stdc++.h>
using namespace std;
long long N,s,x,mx,mxps,mxpf,ps,pf,mxn=-(1e9),mp=1;
int main(){
	ios_base::sync_with_stdio(0);cin.tie(0);
	ifstream cin("ssm.in");
	ofstream cout("ssm.out");
	cin >> N;
	for(int i = 1;i<=N;i++){
		cin >> x;
		if(mxn < x) mxn = x,mp = i;
		
		if(x > 0){
			pf = i;
			if(s == 0) ps = i;
		}
		
		if(s+x > mx){
			mx = s+x;
			mxps = ps;
			mxpf = pf;
		}
		s+=x;
		if(s<0) s = 0;
	}
	if(mxn <= 0) cout << mxn << ' ' << mp << ' ' << mp;
	else cout << mx << ' '<< mxps << ' ' <<  mxpf << '\n';
}