Pagini recente » Cod sursa (job #2063501) | Cod sursa (job #2567266) | Cod sursa (job #714342) | Clasamentul arhivei de probleme | Cod sursa (job #2624634)
#include <fstream>
using namespace std;
ifstream fin( "deque.in" );
ofstream fout( "deque.out" );
struct nod
{ long long val;
int poz;
};
nod st[5000005];
long long n, k, x, top, pr, sum;
int main()
{
int i;
fin >> n >> k;
fin >> x;
pr = 1;
top = 1;
st[1].val = x;
st[1].poz = 1;
for( i = 2; i <= n; i++ ) {
fin >> x;
if(i - st[pr].poz + 1 > k) pr++;
while(x < st[top].val && top >= pr) top--;
top++;
st[top].val = x;
st[top].poz = i;
if(i >= k) sum += st[pr].val;
}
fout << sum;
return 0;
}