Cod sursa(job #2056717)
| Utilizator | Data | 4 noiembrie 2017 12:57:09 | |
|---|---|---|---|
| Problema | Deque | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.63 kb |
#include <iostream>
#include <deque>
using namespace std;
int main()
{
int d[25],a[25],n,k,poz[25],i,s=0;
cin>>n>>k;
for(i = 1; i <=n; i++)
cin>>a[i];
int pr = 0;
int ul = -1;
for(i = 1; i <=k; i++)
{
int x = a[i];
while(pr<=ul && d[ul] >=x)
ul--;
d[++ul] = x;
poz[ul] = i;
}
s=s+d[pr];
for( i = k+1; i <=n; i++)
{
int x = a[i];
while(pr <=ul && d[ul] >=x) ul--;
d[++ul] = x;
poz[ul] = i;
if(poz[pr]<= i-k) pr++;
s+=d[pr];
}
cout<<s;
return 0;
}
