Pagini recente » Cod sursa (job #2432796) | Cod sursa (job #1133747) | Cod sursa (job #2879660)
#include <fstream>
#include <deque>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
#define DIM 5000000
long long s, n, k, v[DIM + 1];
deque <int> DQ;
int main() {
fin.tie(0);
fout.tie(0);
fin >> n >> k;
for(int i = 1; i <= k; i++) {
fin >> v[i];
while(!DQ.empty() && v[DQ.back()] >= v[i]) //elimin toate elementele mai mari decat x;
DQ.pop_back();
DQ.push_back(i); //retin indicii;
}
s = v[DQ.front()]; //prima secventa de k elemente;
DQ.pop_front();
for(int i = k + 1; i <= n; i++) {
fin >> v[i];
while(!DQ.empty() && v[DQ.back()] >= v[i])
DQ.pop_back();
if(DQ.front() == i - k)
DQ.pop_front();
DQ.push_back(i);
s += v[DQ.front()];
}
fout << s;
return 0;
}