Mai intai trebuie sa te autentifici.
Cod sursa(job #2912285)
Utilizator | 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;
}