Cod sursa(job #2899893)

Utilizator disinfoion ion disinfo Data 9 mai 2022 16:24:01
Problema Subsecventa de suma maxima Scor 95
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 kb
#include <fstream>
using namespace std;

int s[3]; 
int s_new[3];
ifstream fin;

int main(){
	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(register 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(s_new[1] > s[0]){
			s_new[0] = s_new[1];
			ans = {s_new[2], i};
		}
		else{
			s_new[0] = s[0];
		}

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

		//cout << "\nstate" << s[0] << " " << s[1] << " " << s[2] << " " << "\n";


	}

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