Cod sursa(job #3207337)

Utilizator cris36Matasa Cristi cris36 Data 25 februarie 2024 21:56:52
Problema Subsecventa de suma maxima Scor 95
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.91 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int main() {
	int n;
	fin >> n;
	int ind1 = 1, ind2 = 1, a = 0, b = 0, smax = 0, x, sant = 0, scur = 0;


	fin >> x;
	sant = x;

	for(int i = 2; i <= n; i++)
	{
		fin >> x;

		if(x > sant + x) 
		{
			scur = x;
			if(sant > smax) 
			{
				smax = sant;
				a = ind1;
				b = ind2;
			} else if(sant == smax) {
				if(ind2 - ind1 < b - a)
				{
					a = ind1;
					b = ind2;
				}
			}
			sant = scur;
			ind1 = i;
			ind2 = i;
		}
		else if(sant + x >= x) {
			cout << scur << " scur\n";
			scur = sant + x;
			sant = scur;
			ind2++;
			if(sant > smax) 
			{
				smax = sant;
				a = ind1;
				b = ind2;
			} else if(sant == smax) {
				if(ind2 - ind1 < b - a)
				{
					a = ind1;
					b = ind2;
				}
			}

		}
	}

	fout << smax << " " << a  << " " << b; 
}