Pagini recente » Istoria paginii runda/grigoremoisil2008/clasament | Cod sursa (job #1058003) | Cod sursa (job #3290866) | Cod sursa (job #350095) | Cod sursa (job #1176300)
#include <fstream>
using namespace std;
int v[5000005],n,k,i,deck[1000000],vf,vf1;
long long sol;
ifstream fin("deque.in");
ofstream fout("deque.out");
int main()
{
fin>>n>>k;
for (i=1;i<=n;i++)
fin>>v[i];
for (i=1;i<=n;i++)
{
while(vf1+1!=vf)
{
if(deck[vf]+k-1<i) vf++;
else break;
}
while(vf1!=vf-1)
{
if(v[deck[vf1]]>=v[i]) vf1--;
else break;
}
deck[++vf1]=i;
if (i>=k)
sol+=v[deck[vf]];
}
fout<<sol;
}