Pagini recente » Cod sursa (job #263055) | Cod sursa (job #2716535) | Cod sursa (job #682626) | Cod sursa (job #949610) | Cod sursa (job #775959)
Cod sursa(job #775959)
#include<fstream>
#include<deque>
using namespace std;
#define NMAX 5000005
ifstream f("deque.in");
ofstream g("deque.out");
int a[NMAX],n,k;
deque<int> dq;
long long sum;
int main()
{
f>>n>>k>>a[1];
dq.push_back(a[1]);
for(int i=2;i<=k;++i)
{
f>>a[i];
while(!dq.empty() && dq.back()>a[i])
dq.pop_back();
dq.push_back(a[i]);
}
sum+=dq.front();
for(int i=k+1;i<=n;++i)
{
f>>a[i];
if(a[i-k]==dq.front())dq.pop_front();
if(dq.empty())
dq.push_back(a[i]);
else
{
while(!dq.empty() && dq.back()>a[i])
dq.pop_back();
dq.push_back(a[i]);
sum+=dq.front();
}
}
g<<sum<<'\n';
return 0;
}