Pagini recente » Cod sursa (job #2531248) | Cod sursa (job #69202) | Cod sursa (job #2264669) | Cod sursa (job #2714018) | Cod sursa (job #1503251)
#include <fstream>
#include <deque>
#include <iostream>
using namespace std;
ifstream in("deque.in");
ofstream out("deque.out");
int vec[5000000];
int main()
{
deque<int> a,b;
int i,n,k,j;
long long int s=0;
in>>n;
in>>k;
for(i=0;i<n;i++) in>>vec[i];
a.push_back(vec[0]);
b.push_back(0);
for(i=1;i<k;i++)
{
while(vec[i] < a[a.size()-1])
{
a.pop_back();
b.pop_back();
}
a.push_back(vec[i]);
b.push_back(i);
}
s+=a[0];
for(i=k;i<n;i++)
{
while(vec[i] < a[a.size()-1])
{
a.pop_back();
b.pop_back();
}
a.push_back(vec[i]);
b.push_back(i);
if(b[a.size()-1]-b[0]+1>k)
{
a.pop_front();
b.pop_front();
}
s+=a[0];
}
out<<s;
in.close();
out.close();
return 0;
}