Cod sursa(job #3225243)

Utilizator leelcheeseCiovnicu Denis leelcheese Data 17 aprilie 2024 10:38:09
Problema Subsecventa de suma maxima Scor 95
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.73 kb
#include <bits/stdc++.h>
#include <unordered_map>
#define nmax 6000007
#define MOD 9901
#define INF 2012345678
#define ll long long
using namespace std;
//#define fin cin
//#define fout cout

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

int n;
int a[nmax];

int main()
{
	int i, left, right, p;
	ll s, sMax;
	fin >> n;
	for (i = 1; i <= n; i++)
		fin >> a[i];
	
	s = sMax = a[1]; p = left = right = 1;
	if (s < 0)
	{
		s = 0;
		p = 2;
	}

	for (i = 2; i <= n; i++)
	{
		s += a[i];

		if (s < 0)
		{
			s = 0;
			p = i + 1;
		}

		if (s > sMax)
		{
			sMax = s;
			left = p;
			right = i;
		}
	}

	fout << sMax << " " << left << " " << right << "\n";
	fout.close();
	fin.close();
	return 0;
}