Cod sursa(job #3214723)

Utilizator leelcheeseCiovnicu Denis leelcheese Data 14 martie 2024 12:51:46
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.72 kb
#include <bits/stdc++.h>
#include <unordered_map>
#define nmax 6000005
#define MOD 1999999973
#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, st, dr, p;
	ll s, sMax;
	fin >> n;
	for (i = 1; i <= n; i++)
		fin >> a[i];

	st = dr = p = 1; s = sMax = a[1];
	if (s < 0)
	{
		p = 2;
		s = 0;
	}
	for (i = 2; i <= n; i++)
	{
		s += a[i];
		if (s > sMax)
		{
			st = p;
			dr = i;
			sMax = s;
		}
		if (s < 0)
		{
			s = 0;
			p = i + 1;
		}
	}
	
	fout << sMax << " " << st << " " << dr << "\n";
	fin.close();
	fout.close();
	return 0;
}