Pagini recente » Cod sursa (job #608242) | Cod sursa (job #2782459) | Cod sursa (job #2243226) | Cod sursa (job #3173810) | Cod sursa (job #3031960)
#include <fstream>
#include <utility>
#include <deque>
using namespace std;
ifstream cin ("deque.in");
ofstream cout ("deque.out");
deque < pair <int , int> > optiuni;
int main ()
{
int lungime_sir , lungime_secventa , numar;
cin >> lungime_sir >> lungime_secventa;
long long suma_minime = 0;
for (int indice = 1 ; indice <= lungime_sir ; indice++)
{
cin >> numar;
while (!optiuni.empty() && numar <= optiuni.back().first)
optiuni.pop_back();
optiuni.push_back(make_pair(numar , indice));
if (optiuni.front().second == indice - lungime_secventa)
optiuni.pop_front();
if (indice >= lungime_secventa)
suma_minime += optiuni.front().first;
}
cout << suma_minime;
cout.close(); cin.close();
return 0;
}