Cod sursa(job #3315363)

Utilizator marelucaMare Luca Ghita mareluca Data 13 octombrie 2025 22:17:42
Problema Subsecventa de suma maxima Scor 80
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.85 kb
#include <fstream>

#include <vector>

#include <climits>

std::ifstream fin("ssm.in");

std::ofstream fout("ssm.out");

std::vector<long long> v;

int main() {

	int n;

	fin >> n;

	v.resize(n);

	for(int i = 0; i < n; ++i) {

		fin >> v[i];

	}

	long long max_sum = LLONG_MIN, current_sum = 0;
    int start = 0, end = 0;

	for(int i = 0; i < n; ++i) {

		current_sum += v[i];

		if(current_sum <= 0) {
            if(max_sum < current_sum) {
				max_sum = current_sum;

                start = i;

				end = i;
			}
            else {
                start = i + 1;

			    end = i + 1;
            }

			current_sum = 0;
		}

		else {

			if(max_sum < current_sum) {
				max_sum = current_sum;

				end = i;

			}

		}

	}

	fout << max_sum << ' ' << start + 1 << ' ' << end + 1;

	return 0;

}