Pagini recente » Diferente pentru home intre reviziile 35 si 903 | muli iorariu | Cod sursa (job #2617236) | Cod sursa (job #1211402) | Cod sursa (job #2617234)
#include <bits/stdc++.h>
#include <deque>
#define maxi 5000010
int A[maxi];
using namespace std;
int main()
{
ifstream f ("deque.in");
ofstream g ("deque.out");
int N,K,s=0;
deque<int> deq;
f>>N>>K;
for(int i=1;i<=N;i++)
f>>A[i];
for(int i=1;i<=N;i++)
{
while(!deq.empty()&& A[i]<=A[deq.back()])
deq.pop_back();
deq.push_back(i);
if(deq.front()==i-K)
deq.pop_front();
if(i>=K)
cout<<A[deq.front()]<<'\n';
s+=A[deq.front()];
}
cout<<s;
/*int i = 1;
while(i <= n)
{
while (A[i] <= A[d[a2]] && a1 <= a2)
a2--;
d[++a2] = i;
if (d[a1]==i-k)
++a1;
if(i>=k)
S+=A[d[a1]];
++i;
}
g << S;*/
}