Pagini recente » Cod sursa (job #83639) | Cod sursa (job #2070201) | Cod sursa (job #2401778) | Cod sursa (job #1851498) | Cod sursa (job #2631328)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
const int Nmax = 5000500;
long long suma = 0;
int n,k;
int sir[Nmax];
deque <int> coada;
//vector <int> coada2;
int main()
{
fin >> n >> k;
for (int i = 1; i <= n; i++)
fin >> sir[i];
for (int i = 1; i <= k; i++){
while(!coada.empty()){
if(sir[i] > coada.back())
break;
coada.pop_back();
}
coada.push_back(sir[i]);
}
suma+=coada.front();
//coada2.push_back(coada.front());
for (int i = k + 1; i <= n; i++){
while(!coada.empty()){
if(sir[i] > coada.back())
break;
coada.pop_back();
}
coada.push_back(sir[i]);
if(coada.front() == sir[i - k])
coada.pop_front();
suma+=coada.front();
//coada2.push_back(coada.front());
}
fout << suma;
//fout << endl;
//for (int i = 0; i < coada2.size(); i++)
//fout << coada2[i] << " ";
}