Cod sursa(job #3202264)
Utilizator | Data | 11 februarie 2024 12:06:36 | |
---|---|---|---|
Problema | Deque | Scor | 25 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.67 kb |
#include <iostream>
#include <stack>
#include <queue>
#include <fstream>
using namespace std;
ifstream fin ("deque.in");
ofstream fout ("deque.out");
struct ep{
int elem;
int poz;
};
deque <ep> deq;
int suma;
int n,k;
int main()
{
fin >> n>> k;
ep e;
for(int i=0;i<n;i++)
{
e.poz=i;
fin >> e.elem;
while(!deq.empty() && e.elem<deq.back().elem)
deq.pop_back();
deq.push_back(e);
if(!deq.empty() && i-deq.front().poz==k)
deq.pop_front();
if(i>=k-1)
{
suma+=deq.front().elem;
}
}
fout << suma;
}