Cod sursa(job #318996)
Utilizator | Iancu David Traian funkydvd | Data | 30 mai 2009 10:55:30 |
---|---|---|---|
Problema | Deque | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.46 kb |
#include <fstream>
#include <deque>
ifstream f1("deque.in");
ofstream f2("deque.out");
using namespace std;
int n, k;
deque< pair<int, int> > dek;
long long s;
int main()
{
int x;
f1 >> n >> k;
for (int i = 0; i < n; ++i) {
f1>>x;
while (!dek.empty() && dek.back().first > x)
dek.pop_back();
dek.push_back(make_pair(x, i));
if (dek.front().second + k == i)
dek.pop_front();
if (i+1>=k)
s += dek.front().first;
}
f2 << s;
}