Pagini recente » Cod sursa (job #3179172) | Cod sursa (job #2184478) | Cod sursa (job #2763761) | Cod sursa (job #2499902) | Cod sursa (job #3167210)
#include <iostream>
#include <fstream>
#include <deque>
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
int main()
{
int N;
int K;
f>>N>>K;
int v[N];
for(int i=0;i<N;i++)
f>>v[i];
deque<pair <int, int>> q;
long long sum=0;
pair<int, int> p;
p=make_pair(v[0], 0);
q.push_back(p);
for(int i =1;i<K;i++)
{
while(q.back().first>=v[i])
q.pop_back();
p=make_pair(v[i],i);
q.push_back(p);
}
cout<<q.front().first<<"\n";
sum=sum+q.front().first;
for(int i =K;i<N;i++)
{
while(!q.empty()&&i-q.front().second>=K)
{
q.pop_front();
}
while(!q.empty()&&q.back().first>=v[i])
{
q.pop_back();
}
p=make_pair(v[i],i);
q.push_back(p);
sum=sum+q.front().first;
}
g<<sum;
}