Pagini recente » Cod sursa (job #464182) | Cod sursa (job #252194) | Cod sursa (job #798179) | Cod sursa (job #500406) | Cod sursa (job #2946092)
#include <fstream>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
int n,k,inc=1,sf=0,x,v[500005],c[500005];
long long sum=0;
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;
}