Pagini recente » Istoria paginii runda/hoata269 | Cod sursa (job #2851077) | Cod sursa (job #575100) | Cod sursa (job #2957211) | Cod sursa (job #2946088)
#include <fstream>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
int n,k,inc=1,sf=0,sum=0,x,v[500005],c[500005];
int main()
{
fin>>n>>k;
v[0]=-2000000000;
for(int i=1;i<=n;i++)
fin>>v[i];
for(int i=1;i<=n;i++)
{
if(i<k)
{
while(v[i]<v[c[sf]]&&inc<=sf)
sf--;
sf++;
c[sf]=i;
}
else
{
while(c[inc]<(i-k+1)&&inc<=sf)
inc++;
while(v[i]<v[c[sf]]&&inc<=sf)
sf--;
sf++;
c[sf]=i;
sum+=v[c[inc]];
}
}
fout<<sum;
return 0;
}