Cod sursa(job #1452249)

Utilizator mikeshadowIon Complot mikeshadow Data 20 iunie 2015 14:10:28
Problema Subsecventa de suma maxima Scor 95
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#include <vector>
 
using namespace std;

int n;
int a[6000001];

#ifdef home 
ifstream fin("input.txt");
ofstream fout("output.txt");
#else 
ifstream fin("ssm.in");
ofstream fout("ssm.out");
#endif

int good = -1;
int x = 0,y=0;

int main()
{
	fin>>n;
	
	for (int i = 1; i <= n; i++)
	{
		fin>>a[i];
		good = max(good,a[i]);
	}
	
	a[0] = 0;
	for (int i= 1; i<=n ;i++)
		a[i]  = a[i-1] +a[i];
	
	int m = 0;	
	for (int i= 1; i<=n; i++)
	{
		if (a[i]-a[m]>good)
		{
			x = m; y=i;
			good = a[i]-a[m];
		}
		if (a[i]<a[m]) m = i;
	}
	
	fout<<good<<' '<<x+1<<' '<<y;
	
 
    return 0;
}