Cod sursa(job #2606239)

Utilizator filicriFilip Crisan filicri Data 27 aprilie 2020 12:53:53
Problema Subsecventa de suma maxima Scor 85
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.51 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;

int main() {
	f>>n>>x;
	currSum=maxSum=x;
	if(x>=0)
		minSum=0;
	else {
		minSum=x;
		sp=2;
	}

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

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

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