Pagini recente » Cod sursa (job #373156) | Cod sursa (job #138161) | Cod sursa (job #2500090) | Cod sursa (job #397832) | Cod sursa (job #878429)
Cod sursa(job #878429)
#include <fstream>
#include <deque>
#include <utility>
using namespace std;
typedef pair<int,int> ii;
int main() {
ifstream fin("deque.in");
ofstream fout("deque.out");
int n, k;
fin >> n >> k;
deque<ii> mayuse;//first:pos, second:value
long long sum=0;
for (int i=0,a; i<n; ++i) {
fin >> a;
while (!mayuse.empty() && a<=mayuse.back().second)
mayuse.pop_back();
mayuse.push_back(ii(i,a));
if (mayuse.front().first<=i-k) mayuse.pop_front();
if (i>=k-1) sum+=mayuse.front().second;
}
fout << sum;
return 0;
}