Cod sursa(job #2092495)

Utilizator Teodor.mTeodor Marchitan Teodor.m Data 21 decembrie 2017 20:10:32
Problema Subsecventa de suma maxima Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <bits/stdc++.h>

using namespace std;

FILE *in = fopen("ssm.in", "r");
FILE *out = fopen("ssm.out", "w");

const int NMax = 6e6 + 5;
int sume_partiale[NMax], n, minim, maxim, idx_maxim, idx_minim;

int main()
{
	
	fscanf(in, "%d", &n);

	for(int i = 1; i <= n; ++i) {
		int x; fscanf(in, "%d", &x);
		sume_partiale[i] = sume_partiale[i - 1] + x;

		if(sume_partiale[i] > maxim) {
			maxim = sume_partiale[i];
			idx_maxim = i;
		}

		if(sume_partiale[i] < minim) {
			minim = sume_partiale[i];
			idx_minim = i;
		}
	}

	fprintf(out, "%d %d %d", maxim - minim, idx_minim + 1, idx_maxim);

	fclose(in); fclose(out);

	return 0;
}