Cod sursa(job #2912285)

Utilizator Teodor11Posea Teodor Teodor11 Data 7 iulie 2022 21:01:04
Problema Secventa 2 Scor 70
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1 kb
#include <iostream>
#include <fstream>
using namespace std;

int n, k, x, y, i, currentSum, maxSum, dequeFront, dequeBack, deque[50001], s[50001];

int main() {
    ifstream fin("secv2.in");
    ofstream fout("secv2.out");
	fin >> n >> k;
	for (int i = 1; i <= n; ++i) {
		fin >> deque[i];
		s[i] += s[i - 1] + deque[i];
	}
	dequeFront = 1; dequeBack = k; maxSum = -25001;
	while (dequeBack <= n) {
        currentSum = s[dequeBack] - s[dequeFront - 1];
        if (maxSum < currentSum) {
            maxSum = currentSum;
            x = dequeFront;
            y = dequeBack;
        }
        i = dequeFront + 1;
        while (dequeBack - i > k) {
            currentSum -= deque[i - 1];
            if (maxSum < currentSum) {
                maxSum = currentSum;
                dequeFront = i;
                x = dequeFront;
                y = dequeBack;
            }
            ++i;
        }
        ++dequeBack;
	}
	fout << x << ' ' << y << ' ' << maxSum;
    return 0;
}