Cod sursa(job #2050131)
Utilizator | Data | 27 octombrie 2017 22:59:25 | |
---|---|---|---|
Problema | Secventa 2 | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.59 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream f("secv2.in");
ofstream g("secv2.out");
int N,K,Ans=-INT_MAX;
int Left,Right;
int V[50010];
deque<int> DQ;
int main() {
f>>N>>K;
for(int i=1; i<=N; i++)
f>>V[i],
V[i]+=V[i-1];
for(int i=0; i<=N; i++) {
while(!DQ.empty() && V[i]<=V[DQ.back()]) DQ.pop_back();
DQ.push_back(i);
if(i+K<=N)
if(V[i+K]-V[DQ.front()]>Ans) {
Ans=V[i+K]-V[DQ.front()];
Left=DQ.front()+1;
Right=i+K; } }
g<<Left<<Right<<Ans; }