Pagini recente » Cod sursa (job #2551708) | Cod sursa (job #3033492) | Cod sursa (job #2554148) | Cod sursa (job #1701018) | Cod sursa (job #1183811)
#include <fstream>
using namespace std;
ifstream in("deque.in");
ofstream out("deque.out");
int st , dr , k , d[5000001] , v[5000001];
inline void stanga(int i)
{
if (i - k == d[st])
st++;
}
inline void dreapta(int i)
{
while (st <= dr && v[i] <= v[d[dr]])
dr--;
d[++dr] = i;
}
int main()
{
int n , i , j , minim;
long long suma;
in>>n>>k;
for(i = 1 ; i <= n ; i++)
in>>v[i];
suma = 0;
st = 1;
dr = 0;
suma = 0;
for(i = 1 ; i <= n ; i++)
{
dreapta(i);
stanga(i);
if(i >= k)
suma += v[d[st]];
}
out<<suma<<'\n';
return 0;
}