Cod sursa(job #1865318)

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

using namespace std;

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

int n, a[6000002];
int maxSum, minSum = 0, idx, inc, sf;

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

void rez(){
	maxSum = a[1];
	for (int i = 1; i <= n; i++){
		a[i] += a[i - 1];
		if (maxSum < a[i] - minSum){
			maxSum = a[i] - minSum;
			inc = idx + 1;
			sf = i;
		}
		if (minSum > a[i]){
			minSum = a[i];
			idx = i;
		}
	}
}

void tip(){
	fout << maxSum << " " << inc << " " << sf;
}

int main(){
	cit();
	rez();
	tip();
	fin.close();
	fout.close();
	return 0;
}