Pagini recente » Cod sursa (job #1201562) | Cod sursa (job #678763) | Cod sursa (job #1958771) | Cod sursa (job #3154603) | Cod sursa (job #960635)
Cod sursa(job #960635)
#include <fstream>
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
int deque[5000003],n,k,a[5000003],begin,end;
long long sum;
void read()
{
f>>n>>k;
int i;
for(i=1;i<=n;i++)
f>>a[i];
}
void calculate()
{
int i;
begin=1;end=0;
for(i=1;i<=k;i++)
{
while(begin<=end&&a[i]<=a[deque[end]])
end--;
deque[++end]=i;
}
sum=a[deque[begin]];
for(i=k+1;i<=n;i++)
{
while(begin<=end&&a[i]<=a[deque[end]])
end--;
deque[++end]=i;
if(deque[begin]==i-k) begin++;
sum+=a[deque[begin]];
}
}
void print()
{
g<<sum<<"\n";
}
int main()
{
read();
calculate();
print();
return 0;
}