Cod sursa(job #2794908)

Utilizator TudosieRazvanTudosie Marius-Razvan TudosieRazvan Data 5 noiembrie 2021 17:59:32
Problema Subsecventa de suma maxima Scor 80
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.92 kb
#include <cstdio>
#include <climits>
#include <vector>
#include <queue>
#include <set>
#include <stack>
#include <string>
#include<bitset>
#include <map>
#include <cstring>
#include<algorithm>

using namespace std;


int n;
long long int sMax, stMax, drMax, sum;
FILE* fin, * fout;



int main()
{
	fin = fopen("ssm.in", "r");
	fout = fopen("ssm.out", "w");

	fscanf(fin, "%d", &n);
	fscanf(fin, "%lld", &sum);
	long long int st = 1, dr = 1;
	sMax = sum, drMax = dr, stMax = st;
	for (int i = 2; i <= n; i++)
	{
		long long int x;
		fscanf(fin, "%lld", &x);
		if (sum + x < x)
		{
			//schimb
			st = i;
			dr = i;
			sum = x;
			if (sum > sMax) {
				stMax = st;
				drMax = dr;
				sMax = sum;
			}
		}
		else {
			sum += x;
			dr = i;
			if (sum > sMax) {
				stMax = st;
				drMax = dr;
				sMax = sum;
			}
		}
	}
	fprintf(fout, "%lld %lld %lld", sMax, stMax, drMax);
	return 0;

}