Cod sursa(job #2276026)

Utilizator cezar.plescaCezar Plesca cezar.plesca Data 3 noiembrie 2018 22:19:56
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.7 kb
#include<stdio.h>
#include<iostream>
#include<fstream>

using namespace std;

int S;
int i1,i2;

int maxS, maxBegin, maxEnd;

void sumamaxima(int* a,int n){
	maxS=a[0], maxBegin=0, maxEnd=0;
	int crtS=a[0], prevBegin=0;
	for(int i=1;i<n;i++){
		if(crtS<0)
			crtS=a[i], prevBegin=i;
		else
			crtS+=a[i];
		if(crtS>maxS)
			maxS=crtS, maxBegin=prevBegin, maxEnd=i;
	}
}

int main(){
	int N;

	ifstream input("ssm.in");
	ofstream output("ssm.out");

	input >> N;
	int* v=new int[N];

	for(int i=0;i<N;i++){
		input >> v[i];
	}

	sumamaxima(v,N);

	output << maxS << " ";
	output << maxBegin+1 << " ";
	output << maxEnd+1;

	input.close();
	output.close();
	return 0;
}