Cod sursa(job #2646614)
| Utilizator | Data | 1 septembrie 2020 16:20:42 | |
|---|---|---|---|
| Problema | Deque | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.56 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("deque.in");
ofstream fout ("deque.out");
const int DIM = 5000000 + 5;
int a[DIM], dq[DIM];
int main()
{
int n, k, left = 1, right = 0;
long long sum = 0;
fin >> n >> k;
for(int i = 1; i <= n; ++i) {
fin >> a[i];
int cnt = 0;
while(a[i] <= a[dq[right]] && right >= left) --right;
dq[++right] = i;
if(dq[left] == i - k) ++left;
if(i >= k) sum += 1LL * a[dq[left]];
}
fout << sum << "\n";
return 0;
}
