Pagini recente » Cod sursa (job #2026522) | Cod sursa (job #2410315) | Cod sursa (job #702799) | Cod sursa (job #2878151) | Cod sursa (job #1313192)
#include <iostream>
#include <fstream>
#include <deque>
#include <algorithm>
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
int a[5000005],n,k,minn=10000005;
deque <int> coada;
long long sol=0;
void citire()
{
f>>n>>k;
for(int i=1;i<=n;i++) f>>a[i];
}
void solve()
{
coada.push_front(a[1]);
for(int i=2;i<=k;i++)
{
if(a[i]<=coada.back())
{
while(a[i]<=coada.back() && !coada.empty())
coada.pop_back();
}
coada.push_back(a[i]);
}
sol+=coada.front();
//coada.push_back(minn);
// sort(coada+1,coada+k+1);
for(int i=2;i<=n-k+1;i++)
{
if(a[i-1]==coada.front()) coada.pop_front();
while(a[i+k-1]<coada.back() && !coada.empty())
{
coada.pop_back();
}
coada.push_back(a[i+k-1]);
sol+=coada.front();
// cout<<coada.front()<<" ";
}
}
int main()
{
citire();
solve();
g<<sol;
return 0;
}