Cod sursa(job #2043493)
| Utilizator | Data | 20 octombrie 2017 09:40:17 | |
|---|---|---|---|
| Problema | Deque | Scor | 25 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.47 kb |
#include <fstream>
using namespace std;
ifstream in ("deque.in");
ofstream out ("deque.out");
const int N=5000003;
int v[N],d[N];
int main()
{
int n,k,i,s=0,st=0,dr=-1;
in>>n>>k;
for (i=0;i<n;i++)
in>>v[i];
for (i=0;i<n;i++)
{
if (st<=dr && d[st]==i-k)
st++;
while (st<=dr && v[i]<=v[d[dr]])
dr--;
dr++;
d[dr]=i;
if (i>=k-1)
s+=v[d[st]];
}
out<<s;
return 0;
}
