Pagini recente » Cod sursa (job #815059) | Cod sursa (job #1916918) | Cod sursa (job #1324047) | Cod sursa (job #2483590) | Cod sursa (job #933181)
Cod sursa(job #933181)
#include <fstream>
using namespace std;
ifstream fin ("deque.in");
ofstream fout ("deque.out");
#define NMAX 5000005
int deque[NMAX],k,st=1,dr,n,v[NMAX];
long long sum;
void read()
{
fin>>n>>k;
for(int i=1;i<=n;i++)
fin>>v[i];
}
void stanga(int poz)
{
if(poz - deque[st] == k)
st++;
}
void dreapta(int poz)
{
while(st <= dr && v[poz] <= v[deque[dr]])
dr--;
}
void solve()
{
for(int i=1;i<=n;i++)
{
if(i>k) stanga(i);
dreapta(i);
deque[++dr] = i;
if(i>=k) sum+= v[deque[st]];
}
}
int main()
{
read();
solve();
fout<<sum;
}