Pagini recente » Cod sursa (job #1082544) | Cod sursa (job #1722222) | Cod sursa (job #2165098) | Cod sursa (job #2671743) | Cod sursa (job #2887928)
#include<iostream>
#include<fstream>
using namespace std;
int dq[5000001], sir[5000001];
//dq- retin pozitia elem minim
int main()
{
ifstream f("deque.in");
ofstream g("deque.out");
long long n,k;
f>>n>>k; //n-nr elem, k-lung segm din aux
long long s=0;
int fq=1, bq=0;
for(int i=1;i<=n;i++)
f>>sir[i];
for(int i=1;i<=n;i++)
{
while(fq<=bq && sir[i]<=sir[dq[bq]])
bq--;
dq[++bq]=i;
//eliminam primul elem din dq daca nu mai apartine secv
if(dq[fq]==i-k)
fq++;
if(i>=k)
s+=sir[dq[fq]];
}
g<<s;
return 0;
}