Pagini recente » Cod sursa (job #2929224) | Cod sursa (job #2618397) | Cod sursa (job #55797) | Cod sursa (job #2557225) | Cod sursa (job #513151)
Cod sursa(job #513151)
#include<cstdio>
#include<fstream>
using namespace std;
ifstream in("deque.in");
ofstream out("deque.out");
int v[1000];
int dq[10000];
int n,k,i,j,min,max,s=0,st,dr;
inline void dreapta(int i)
{
while(st<=dr &&v[dq[dr]]>=v[i])
{
--dr;
}
}
inline void stanga(int i)
{
if (i-dq[st]==k) ++st;
}
inline void adauga(int i)
{
dq[++dr]=i;
}
int main()
{
in>>n>>k;
for(i=1;i<=n;i++)
in>>v[i];
//st=1;
dr=-1;
for(i=1;i<=k;++i)
{
dreapta(i);
adauga(i);
//dq[++dr]=i;
}
s=v[dq[st]];
for(;i<=n;++i)
{
stanga(i);
dreapta(i);
adauga(i);
s=s+v[dq[st]];
}
out<<s;
return 0;
}