Cod sursa(job #2526132)

Utilizator TheGodFather2131Alexandru Miclea TheGodFather2131 Data 18 ianuarie 2020 12:04:08
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.94 kb
//ALEXANDRU MICLEA

#include <vector>
#include <algorithm>
#include <string>
#include <queue>
#include <map>
#include <set>
#include <unordered_map>
#include <time.h>
#include <iomanip>
#include <deque>
#include <math.h>
#include <cmath>
#include <assert.h>
#include <stack>
#include <bitset>
#include <random>
#include <chrono>

using namespace std;

//#include <iostream>
#include <fstream>
ifstream cin("ssm.in"); ofstream cout("ssm.out");

//VARIABLES

int n, val;
long long ans;
int best = -1e9, bpos, epos, MIN = 0, pos;

int v[6000005];

//FUNCTIONS



//MAIN
int main() {

	cin >> n;
	for (int i = 1; i <= n; i++) {
		cin >> v[i];
	}

	for (int i = 1; i <= n; i++) {
		v[i] += v[i - 1];

		if (best < v[i] - MIN) {
			best = v[i] - MIN;
			bpos = pos + 1;
			epos = i;
		}

		if (MIN > v[i]) {
			MIN = v[i];
			pos = i;
		}
	}

	cout << best << " " << bpos << " " << epos;

	return 0;
}