Cod sursa(job #1053121)
Utilizator | Data | 12 decembrie 2013 11:51:30 | |
---|---|---|---|
Problema | Deque | Scor | 60 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.42 kb |
#include <fstream>
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
long long v[5000001],dq[5000001];
int main()
{
long long n, k, suma_min=0;
f>>n>>k;
for (int i=1; i<=n; ++i)
f>>v[i];
int l=1, r=0;
for (int i=1; i<=n; ++i)
{
while(l<=r && v[dq[r]]>=v[i])
r--;
r++;
dq[r] = i;
if (dq[l]==i-k)
l++;
if (i>=k)
suma_min+=v[dq[l]];
}
g<<suma_min;
return 0;
}