Cod sursa(job #2748776)

Utilizator GicuRGicu Rata GicuR Data 3 mai 2021 12:35:48
Problema Subsecventa de suma maxima Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.08 kb
#include <bits/stdc++.h>
using namespace std;
#define For(i,a,b); for(int i=a;i<=b;i++)
#define FOR(i,a,b); for(int i=a;i<b;i++)
#define Dow(i,a,b) for (int i=a;i>=b;i--)
#define e '\n'
#define FAST ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
#define fil(a,b) memset((a),(b),sizeof(a))
typedef long long ll;
typedef unsigned long long ull;



inline ll read(){
	ll x=0,f=1;char c=getchar();
	while ((c<'0'||c>'9')&&(c!='-')) c=getchar();
	if (c=='-') f=-1,c=getchar();
	while (c>='0'&&c<='9') x=x*10+c-'0',c=getchar();
	return x*f;
}
const int INFINIT = INT_MAX;
int a[60000];



int main(){
	FAST
	ifstream cin("ssm.in");
	ofstream cout("ssm.out");
	int n,mx,bestSum,sum,l=0,r,lc;
	cin >> n;
	for (int i = 1; i <= n; i++) {
		int x; cin >> x;
    	sum += x;
    	if (sum < 0){
       		sum = 0;
    		l=i;
		}
		else if (sum > bestSum){
    			bestSum = sum; 
				r=i;     
		} 
		if(x>mx) {
			mx=x;
			lc=i;
		}
	}
	
	if(bestSum==0 && mx<=0) cout << mx << lc << lc;
		else cout << bestSum << " " << ++l << " " << r; 

return 0;

}