Cod sursa(job #1498875)
| Utilizator | Data | 9 octombrie 2015 18:01:48 | |
|---|---|---|---|
| Problema | Deque | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.45 kb |
#include <iostream>
#include <fstream>
#define nmax 5000005
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
long d[nmax],poz[nmax];
int main()
{long i,n,k,in,sf,x;
long long rez=0;
fin>>n>>k;
in=1;sf=0;i=1;
do
{
fin>>x;
while(d[sf]>x && sf>=in)sf--;
d[++sf]=x;poz[sf]=i;
if(i-poz[in]>=k)in++;
if(i>=k)rez+=d[in];
i++;
}while(i<=n);
fout<<rez;
}
