Cod sursa(job #2503237)
| Utilizator | Data | 2 decembrie 2019 19:08:39 | |
|---|---|---|---|
| Problema | Deque | Scor | 20 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.65 kb |
#include <iostream>
#include<fstream>
#define N 5005
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
int st,dr;
int a[N],n,k;
struct stiva
{
int val,poz;
}s[N];
/*3
-1 -2 3 3 0 -1 4
-2 0
2 5
-2 */
void solve()
{
int i,sum=0;
for(i=1;i<=n;++i)
{
while(a[i]<s[dr].val&&dr>=st)
dr--;
s[++dr].val=a[i];
s[dr].poz=i;
if(s[dr].poz-s[st].poz==k)
st++;
if(i>=k)sum+=s[st].val;
}
fout<<sum;
}
int main()
{
int i;
fin>>n>>k;
for(i=1;i<=n;++i)
fin>>a[i];
solve();
return 0;
}
