Pagini recente » Cod sursa (job #2393515) | Cod sursa (job #53857) | Cod sursa (job #2529147) | Cod sursa (job #2659368) | Cod sursa (job #1676991)
#include <fstream>
#include <deque>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
int n,k;
long long v[5000005];
deque<int>q;
long long suma;
void citire()
{
int i;
long long x;
fin>>n>>k;
for(i=1;i<=n;i++)
{
fin>>v[i];
}
}
void rezolvare()
{
int i;
deque<int>::iterator it;
for(i=1;i<k;i++)
{
q.push_back(i);
}
for(i=k;i<=n;i++)
{
it=q.end()-1;
while(q.size() && v[i]<=v[q.back()])
{
q.pop_back();
it--;
}
q.push_back(i);
if(i-k==q.front())
q.pop_front();
suma+=v[q.front()];
}
fout<<suma;
}
int main()
{
citire();
rezolvare();
return 0;
}