Cod sursa(job #1426198)
| Utilizator | Data | 29 aprilie 2015 09:01:13 | |
|---|---|---|---|
| Problema | Deque | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.53 kb |
#include <fstream>
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
int a[5000001], b[5000001];
int fr, bk, n, i, k;
long long s;
int main()
{
f >> n >> k;
for (i = 1; i <= n; i++)
f >> a[i];
fr = 1, bk = 0;
for (i = 1; i <= n; i++)
{
while (fr <= bk && a[b[bk]] >= a[i])
bk--;
bk++, b[bk] = i;
if (b[fr] == i-k)
fr++;
if (i >= k)
s += a[b[fr]];
}
g << s;
return 0;
}
