Cod sursa(job #1311404)
| Utilizator | Data | 8 ianuarie 2015 02:51:39 | |
|---|---|---|---|
| Problema | Deque | Scor | 25 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.64 kb |
#include <fstream>
#define mxm 5000005
using namespace std;
ifstream fin ("deque.in");
ofstream fout ("deque.out");
int n, k, a[mxm], coada[mxm], i, jos=0, sus=1, suma=0;
int main()
{
fin >> n >> k;
for (i=1; i<=n; i++)
{
fin >> a[i];
while (sus <= jos && a[i] <= a[coada[jos]])
jos--;
jos++;
coada[jos] = i;
if (coada[sus] == i-k)
sus++;
if (i >= k)
suma = 1LL*suma + a[coada[sus]];
}
fout << suma;
fin.close ();
fout.close ();
return 0;
}
