Cod sursa(job #2714870)

Utilizator DragosC1Dragos DragosC1 Data 2 martie 2021 16:59:23
Problema Secventa 2 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <fstream>
#include <deque>
using namespace std;

int n, k, st, dr;
int a[50001];
const int Inf = 2e9;
int smax = -Inf, sumatot;

void read() {
	int i;
	ifstream f("secv2.in");
	f >> n >> k;
	for (i = 1; i <= n; i++)
		f >> a[i];
	f.close();
}

void solve() {
	int i, init;
	int S = 0;
	init = 1;
	for (i = 1; i <= n; i++) {
		sumatot += a[i];
		S += a[i];
		if (S > smax && i - init >= k) {
			smax = S;
			st = init;
			dr = i;
		}
		if (S < 0) {
			init = i + 1;
			S = 0;
		}
	}
}

void output() {
	ofstream g("secv2.out");
	if (smax == -Inf)
		g << 1 << ' ' << n << ' ' << sumatot;
	else 
		g << st << ' ' << dr << ' ' << smax;
	g.close();
}

int main() {
	read();
	solve();
	output();
	return 0;
}