Pagini recente » Cod sursa (job #1459938) | Cod sursa (job #1962732) | Cod sursa (job #1738112) | Cod sursa (job #593289) | Cod sursa (job #442364)
Cod sursa(job #442364)
#include <fstream>
using namespace std;
const char InFile[]="deque.in";
const char OutFile[]="deque.out";
const int MaxN=5000005;
ifstream fin(InFile);
ofstream fout(OutFile);
int N,K,ST,SF,V[MaxN],Deque[MaxN];
long long SUM;
int main()
{
fin>>N>>K;
for(register int i=1;i<=N;++i)
fin>>V[i];
fin.close();
ST=1;
SF=0;
for(register int i=1;i<=N;++i)
{
while(ST<=SF && V[i]<=V[Deque[SF]])--SF;
Deque[++SF]=i;
if(Deque[ST]==i-K)++ST;
if(i>=K)
SUM+=V[Deque[ST]];
}
fout<<SUM;
fout.close();
return 0;
}