Pagini recente » Borderou de evaluare (job #1809968) | Cod sursa (job #1229955) | Cod sursa (job #2737301) | Cod sursa (job #2594010) | Cod sursa (job #3031881)
#include <bits/stdc++.h>
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
int main()
{
long long n, k, sum = 0;
f >> n >> k;
vector < int > a(n);
deque < int > D;
for(int i = 0; i < n; i++)
f >> a[i];
for(int i = 0; i < k -1; i++){
while(!D.empty()){
if(a[i] > a[D.back()])
break;
D.pop_back();
}
D.push_back(i);
}
for(int i = k - 1; i < n;i++){
while(!D.empty()){
if(a[i] > a[D.back()])
break;
D.pop_back();
}
D.push_back(i);
if(i - D.front() >= k)
D.pop_front();
sum += a[D.front()];
}
g << sum;
return 0;
}