Pagini recente » Cod sursa (job #1409607) | Cod sursa (job #1931429) | Cod sursa (job #2470873) | Cod sursa (job #203371) | Cod sursa (job #3237362)
#pragma GCC optimize("O3,unroll-loops")
#include<bits/stdc++.h>
using namespace std;
class I {
private:
FILE *F;
char *s;
int p;
char A()
{
if(++p==4096)
p=0,fread(s,1,4096,F);
return s[p];
}
public:
I(const char *t)
{
F=fopen(t,"r");
s=new char[4096]();
p=4095;
}
I &operator>>(int &n)
{
char c;
for(;!isdigit(c=A())&&c!='-';);
int r=1;
for(c=='-'?n=0,r=-1:n=c-48;isdigit(c=A());n=10*n+c-48);
n*=r;
return *this;
}
};
I F("deque.in");
ofstream G("deque.out");
deque<int> q;
int v[5000001];
int main()
{
int n,k,i,j=0;
for(F>>n>>k,i=1;i<=n;F>>v[i++]);
for(i=1;i<=k;q.push_back(i++))
for(;!q.empty()&&v[q.back()]>v[i];q.pop_back());
long long z=0;
for(z+=v[q.front()],i=k+1;i<=n;q.push_back(i++),z+=v[q.front()]) {
for(++j;!q.empty()&&q.front()<=j;q.pop_front());
for(;!q.empty()&&v[q.back()]>v[i];q.pop_back());
}
return G<<z,0;
}