Pagini recente » Diferente pentru utilizator/dragosc1 intre reviziile 18 si 24 | Istoria paginii problema/hardtask | Atasamentele paginii Profil badea_adi1999 | Atasamentele paginii Clasament de_ce_sa_ne_certam_iubi | Cod sursa (job #2946075)
#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]=10000001;
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;
}