Cod sursa(job #1526241)
| Utilizator | Data | 16 noiembrie 2015 03:21:31 | |
|---|---|---|---|
| Problema | Deque | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.46 kb |
#include <fstream>
long long v[5000000], len, s, front, x;
long pos[5000000];
long N, k;
using namespace std;
int main(){
ofstream of("deque.out");
ifstream f("deque.in");
f >> N >> k;
front = 1; len = 0;
for (long i = 1; i <= N; ++i)
f >> v[i];
for (long i = 1; i <= N; ++i){
while (len >= front && v[i] <= v[pos[len]]) --len;
pos[++len] = i;
if (pos[front] <= i - k)
++front;
if (i >= k)s += v[pos[front]];
}
of << s << "\n";
}