Cod sursa(job #2899887)

Utilizator disinfoion ion disinfo Data 9 mai 2022 15:53:55
Problema Subsecventa de suma maxima Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.66 kb
#include <fstream>
using namespace std;

int s[3]; 
int s_new[3];

int main(){
	ifstream fin;
	ofstream fout;
	fin.open("ssm.in");
	fout.open("ssm.out"); 
	int n, x;
	

	fin >> n;
	fin >> x;
	s[0] = s[1] = x;
	s[2] = 1;
	pair<int,int> ans = {1, 1};

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

		if(s[1] > 0){
			s_new[1] = x + s[1];
			s_new[2] = s[2];
		}
		else{
			s_new[1] = x;
			s_new[2] = i;
		}

		if(x + s[1] > s[0]){
			s_new[0] = x + s[1];
			ans = {s[2], i};
		}
		else{
			s_new[0] = s[1];
		}

		for(int j=0; j < 3; ++j)
			s[j] = s_new[j];


	}

	fout << s[0] << "\n";
	fout << ans.first << "\n" << ans.second;
}