Pagini recente » Cod sursa (job #2770177) | Cod sursa (job #679456) | Cod sursa (job #1631722) | Cod sursa (job #1841850) | Cod sursa (job #789195)
Cod sursa(job #789195)
#include <fstream>
#include <queue>
#include <iostream>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
struct ceva
{
int val, poz;
ceva()
{
val=0;
poz=1;
}
ceva(int V, int P)
{
val = V;
poz = P;
}
};
deque<ceva> D;
int main()
{
int n,k,x;
long long s=0;
fin>>n>>k;
for(int i=1;i<=k;i++)
{
fin>>x;
while(!D.empty() && D.back().val >= x)
D.pop_back();
D.push_back(ceva(x,i));
}
s=D.front().val;
for(int i=k+1;i<=n;i++)
{
fin>>x;
while(!D.empty() && D.back().val >= x)
D.pop_back();
while(!D.empty() && D.front().poz<=i-k)
D.pop_front();
D.push_back(ceva(x,i));
s+=D.front().val;
}
fout<<s<<'\n';
cout<<"OK";
fin.close();
fout.close();
return 0;
}