Pagini recente » Cod sursa (job #1842639) | Cod sursa (job #1502157) | Cod sursa (job #1707298) | Cod sursa (job #1516403) | Cod sursa (job #2887720)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
int main() {
int n,k,x,i;
f>>n>>k;
i = 0;
int v[n+1];
int d[n+1];
int suma = 0;
while (f>>x)
{
v[i] = x;
i++;
}
int spate = 0;
int fata = 0;
int size = 0;
int nr = 0;
for(i = 0;i<n;i++)
{
while (size > 0 && v[i]<=v[d[spate]])
{
spate--;
size --;
}
if(nr == 0) {
d[spate] = i;
nr = 1;
}
else
d[++spate] = i;
if(i>=k-1)
suma += v[d[fata]];
if(d[fata]==i-k+1)
fata++;
size = spate - fata+1;
}
g<<suma;
f.close();g.close();
return 0;
}