Pagini recente » Cod sursa (job #2154420) | Cod sursa (job #2500255) | Cod sursa (job #833466) | Cod sursa (job #1812424) | Cod sursa (job #1123305)
#include <fstream>
int n,k,i,x[5000003],m,s,p;
using namespace std;
struct coada
{
int x,poz;
} c[5000003];
int main()
{
ifstream fin("deque.in");
ofstream fout("deque.out");
fin>>n>>k;
for(i=1;i<=n;++i)
{
fin>>x[i];
}
m=1;
c[m].x=x[1];
c[m].poz=1;
for(i=2;i<=k;i++)
{
while(m>0&&c[m].x>x[i])
m--;
m++;
c[m].x=x[i];
c[m].poz=i;
}
s=c[1].x;
p=1;
for(i=k+1;i<=n;i++)
{
if(c[p].poz+k-1<i) p++; //aici era grasit am scris pe tabla > in loc de <
while(m>=p&&c[m].x>x[i]) m--;
m++;
c[m].x=x[i];
c[m].poz=i;
s=s+c[p].x;
}
fout<<s<<'\n';
fout.close();
return 0;
}