Cod sursa(job #2215850)

Utilizator DawlauAndrei Blahovici Dawlau Data 23 iunie 2018 21:13:47
Problema Secventa 2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <fstream>
#include <vector>
#include <deque>
#include <climits>

using namespace std;

ifstream fin("secv2.in");
ofstream fout("secv2.out");

const int Inf = INT_MAX;

int main() {

	int N, K;
	fin >> N >> K;

	vector <int> sums;
	sums.resize(N + 1);

	for (int idx = 1; idx < K; ++idx) {

		fin >> sums[idx];
		sums[idx] += sums[idx - 1];
	}

	int minPartSumIdx = -1, minPartSum = Inf;
	int lft, rgt, maxSum = -Inf;

	for (int idx = K; idx <= N; ++idx) {

		fin >> sums[idx];
		sums[idx] += sums[idx - 1];

		if (sums[idx - K] < minPartSum) {

			minPartSum = sums[idx - K];
			minPartSumIdx = idx - K;
		}

		int currSum = sums[idx] - minPartSum;
		if (currSum > maxSum) {

			maxSum = currSum;
			lft = minPartSumIdx + 1;
			rgt = idx;
		}
	}

	fout << lft << ' ' << rgt << ' ' << maxSum;
}