Cod sursa(job #2888522)
Utilizator | Data | 11 aprilie 2022 15:35:52 | |
---|---|---|---|
Problema | Deque | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.55 kb |
#include <iostream>
#include <fstream>
#define MAXIM 5000001
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
int v[MAXIM],A[MAXIM];
int main()
{
long long suma=0;
int N,K,ok1=1,ok2=0,i;
f>>N>>K;
for(i=1; i<=N; i++)
f>>A[i];
for(i=1; i<=N; i++)
{
while(A[i]<A[v[ok2]] && ok1<=ok2)
ok2--;
v[++ok2]=i;
if(v[ok1]==i-K)
ok1++;
if(i>=K)
suma+=A[v[ok1]];
}
g<<suma;
f.close();
g.close();
return 0;
}