Cod sursa(job #2611941)
| Utilizator | Data | 7 mai 2020 21:15:24 | |
|---|---|---|---|
| Problema | Deque | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.51 kb |
#include <fstream>
#define MAX 5000010
using namespace std;
ifstream in("deque.in");
ofstream out("deque.out");
int A[MAX], deque[MAX];
long long int N,K,sum=0;
int main()
{
in>>N>>K;
int front = 1, back = 0; // Initializam deque
for(int i=0; i<N; i++)
{
in>>A[i];
while(front<=back && A[i]<= A[deque[back]]) back--;
deque[++back]=i;
if(deque[front] == i-K)
front++;
if(i>=K-1)
sum+=A[deque[front]];
}
out<<sum;
}
