Cod sursa(job #1865341)

Utilizator SaphyrosMarcus Sergiu David Saphyros Data 1 februarie 2017 18:19:23
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream fin ("ssm.in");
ofstream fout ("ssm.out");

int n, a[6000001];
int mx, mn, iM, st, sf;

void cit(){
	fin >> n;
	for (int i = 0; i < n; i++)
		fin >> a[i];
}

void rez(){
	mx = a[0];
	iM = 0;
	mn = a[0];
	for (int i = 1; i < n; i++){
		a[i] += a[i-1];
		if (mx < a[i] - mn){
			mx = a[i] - mn;
			st = iM + 1;
			sf = i;
		}
		if (mn > a[i]){
			mn = a[i];
			iM = i;
		}
	}
}

void tip(){
	fout << mx << " " << st+1 << " " << sf+1;
}

int main(){
	cit();
	rez();
	tip();
	return 0;
}