Cod sursa(job #2912885)

Utilizator asdfdAlexandru Andrei asdfd Data 11 iulie 2022 15:02:24
Problema Subsecventa de suma maxima Scor 85
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1 kb
#include <iostream>
#include <fstream>
using namespace std;

int n, k, v[6000000], leftt = 1, rightt = 1, positive;
long long int max_sum = -2000000000, act_sum;

int main() {
    ifstream fin("ssm.in");
    ofstream fout("ssm.out");
	fin >> n;
	for (int i = 1; i <= n; ++i) {
        fin >> v[i];
        if (v[i] > -1) {
            ++positive;
        }
	}
	int cnt = 0;
	if (positive > 0) {
        for (int i = 1; i <= n; ++i) {
            act_sum += v[i];
            if (act_sum > max_sum) {
                ++cnt;
                max_sum = act_sum;
                rightt = i;
            }
            if (act_sum < 0) {
                act_sum = 0;
                leftt = i + 1;
            }
        }
	} else {
        for (int i = 1; i <= n; ++i) {
            if (v[i] > max_sum) {
                max_sum = v[i];
                leftt = i;
                rightt = i;
            }
        }
	}
	fout << max_sum << ' ' << leftt << ' ' << rightt;
	return 0;
}