Pagini recente » Cod sursa (job #2487483) | Cod sursa (job #1435288) | Cod sursa (job #502238) | Cod sursa (job #1611980) | Cod sursa (job #1124265)
#include<fstream>
using namespace std;
int n,k,a[5000002],b[5000002],c[5000002],i,nb,p;
long long s;
fstream fin,fout;
int main()
{
fin.open("deque.in",ios::in);
fout.open("deque.out",ios::out);
fin>>n>>k;
for(i=1;i<=n;i++)
{
fin>>a[i];
}
nb=1;
b[1]=a[1];
c[1]=1;
for(i=2;i<=k;i++)
{
while(nb>0 && b[nb]>a[i])
{
nb--;
}
nb++;
b[nb]=a[i];
c[nb]=i;
}
s=b[1];
p=1;
for(i=k+1;i<=n;i++)
{
if(c[p]==i-k)
{
p++;
}
while(nb>=p && b[nb]>a[i])
{
nb--;
}
nb++;
b[nb]=a[i];
c[nb]=i;
s=s+b[p];
}
fout<<s;
fin.close();
fout.close();
return 0;
}