Pagini recente » Cod sursa (job #2932098) | Cod sursa (job #2019346) | Cod sursa (job #2316049) | Cod sursa (job #1473074) | Cod sursa (job #1808320)
#include <fstream>
#include <deque>
using namespace std;
deque <int> p;
int n,i,k,a[5000005];
long long s;
void ins(int x)
{
while(!p.empty()&&a[x]<=a[p.back()])
p.pop_back();
p.push_back(x);
}
void elim(int i)
{
while(!p.empty()&&p.front()<=i-k )
p.pop_front();
}
int main()
{
ifstream f("deque.in");
ofstream g("deque.out");
f>>n>>k;
for(i=1; i<=k; i++)
{
f>>a[i];
ins(i);
}
s+=a[p.front()];
for(i=k+1; i<=n; i++)
{
f>>a[i];
elim(i);
ins(i);
s+=a[p.front()];
}
g<<s<<'\n';
f.close(); g.close();
return 0;
}