Pagini recente » Cod sursa (job #2632763) | Cod sursa (job #2138181) | Cod sursa (job #1068724) | Cod sursa (job #2868517) | Cod sursa (job #990250)
Cod sursa(job #990250)
#include<fstream>
#include<deque>
using namespace std;
ifstream in("deque.in");
ofstream out("deque.out");
int n, m;
long long sum;
deque<int> dq;
deque<int> pos;
int main()
{
in>>n>>m;
for(int i=1; i<=m; i++)
{
int nr;
in>>nr;
while(!dq.empty() && dq.back() > nr)
{
dq.pop_back();
pos.pop_back();
}
dq.push_back(nr);
pos.push_back(i);
}
sum += dq.front();
for(int i=m+1; i <= n; i++)
{
int nr;
in>>nr;
if(pos.front() <= i - m)
{
dq.pop_front();
pos.pop_front();
}
while(!dq.empty() && dq.back() > nr)
{
dq.pop_back();
pos.pop_back();
}
dq.push_back(nr);
pos.push_back(i);
sum += dq.front();
}
out<<sum;
in.close();
out.close();
return 0;
}