Pagini recente » Cod sursa (job #327272) | Cod sursa (job #179873) | Cod sursa (job #2459102) | Cod sursa (job #599325) | Cod sursa (job #2156610)
#include<fstream>
#include<deque>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
const int NMAX = 5e6 + 5;
deque<int> Deque;
long long sum;
int Array[NMAX];
int ArraySZ, SeqSZ;
int main(){
fin >> ArraySZ >> SeqSZ;
int idx;
for(idx = 1; idx < SeqSZ; ++idx){
fin >> Array[idx];
while(!Deque.empty() and Array[Deque.back()] > Array[idx])
Deque.pop_back();
Deque.push_back(idx);
}
for(idx = SeqSZ; idx <= ArraySZ; ++idx){
fin >> Array[idx];
while(!Deque.empty() and Array[Deque.back()] > Array[idx])
Deque.pop_back();
Deque.push_back(idx);
sum += Array[Deque.front()];
if(Deque.front() <= idx - SeqSZ + 1)
Deque.pop_front();
}
fout << sum;
}