Cod sursa(job #3311429)

Utilizator tudorvoieVoie Tudor tudorvoie Data 22 septembrie 2025 10:44:50
Problema Subsecventa de suma maxima Scor 95
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.58 kb
#include <bits/stdc++.h>
using namespace std;

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

int v[6000011], s[6000011];
int main() {
	int n;
	fin >> n;
	for(int i = 1; i <= n; i++) {
		fin >> v[i];
	}
	
	s[1] = v[1];
	int d = 1, dmaxx = 1, ind = 1, maxx = v[1];
	for(int i = 2; i <= n; i++) {
		if(s[i - 1] + v[i] > v[i]) {
			s[i] = s[i - 1] + v[i];
			d = d + 1;
		} else {
			s[i] = v[i];
			d = 1;
		}	
		
		if(s[i] > maxx || (s[i] == maxx && i - d + 1 < ind - dmaxx + 1)) {
			maxx = s[i];
			dmaxx = d;
			ind = i;
		}
	}
	
	
	fout << maxx << " " << ind - dmaxx + 1 << " " << ind;
}