Cod sursa(job #2626814)

Utilizator gasparrobert95Gaspar Robert Andrei gasparrobert95 Data 8 iunie 2020 14:26:42
Problema Subsecventa de suma maxima Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.59 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int n, a, b, smax, v[6000005];

int main() {
	fin >> n;
	for (int i = 1; i <= n; ++i) {
		fin >> v[i];
		if (v[i] > smax || i == 1) {
			smax = v[i];
			a = i, b = i;
		}
		v[i] += v[i - 1];
	}
	for (int i = 1; i <= n; ++i) {
		if (i > 1 && v[i] - v[i - 1] < v[i - 1] - v[i - 2])
			continue;
		for (int j = i + 1; j <= n; ++j)
			if (v[j] - v[i - 1] > smax) {
				smax = v[j] - v[i - 1];
				a = i, b = j;
			}
	}
	fout << smax << " " << a << " " << b;
	return 0;
}