Cod sursa(job #2606245)

Utilizator filicriFilip Crisan filicri Data 27 aprilie 2020 13:01:45
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.54 kb
#include <fstream>
using namespace std;
ifstream f("ssm.in");
ofstream g("ssm.out");

int n, x;
long long currSum, maxSum, minSum;
int sp=1, fp=1, ssp=1;

int main() {
	f>>n>>x;
	currSum=maxSum=x;

	if(x>=0)
		minSum=0;
	else {
		minSum=x;
		sp=2;
		ssp=2;
	}

	for(int i=2;i<=n;i++) {
		f>>x;
		currSum+=x;
		if(currSum-minSum>maxSum) {
			maxSum=currSum-minSum;
			fp=i;
			sp=ssp;
		}
		if(minSum>currSum) {
			minSum=currSum;
			ssp=i+1;
		}
	}

	g<<maxSum<<' '<<sp<<' '<<fp;

	f.close();
	g.close();
	return 0;
}