Pagini recente » Cod sursa (job #3329407) | Cod sursa (job #2293324) | Cod sursa (job #3313240) | Cod sursa (job #3350248) | Cod sursa (job #3339861)
#include <fstream>
#include <queue>
#define NMAX 5000002
using namespace std;
ifstream fin ("deque.in");
ofstream fout ("deque.out");
struct element{int val, poz;};
int n, k;
long long int sum;
deque<element> deq;
int main()
{
int i, x;
fin>>n>>k;
for(i = 1; i <= n; i++)
{
fin>>x;
while(!deq.empty() && deq.front().poz <= i - k) //scoate toate elementele dated
{
deq.pop_front();
}
while(!deq.empty() && deq.back().val > x)
{
deq.pop_back();
}
deq.push_back({x, i});
if(i >= k) //am citit macar primele k elemente
sum += deq.front().val;
}
fout<<sum<<'\n';
return 0;
}