Cod sursa(job #1779117)
| Utilizator | Data | 14 octombrie 2016 20:18:40 | |
|---|---|---|---|
| Problema | Deque | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.67 kb |
#include<fstream>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
int v[5000002],d[5000002];
int main(){
long long n,i,S,pr,ul,k;
fin>>n;
fin>>k;
for(i=1;i<=n;i++)
{
fin>>v[i];
}
pr=1;ul=1;d[1]=1;
for(i=2;i<=k;i++)
{
while(pr<=ul&&v[d[ul]]>=v[i])
ul--;
ul++;
d[ul]=i;
}
S=v[d[pr]];
for(i=2;i<=n-k+1;i++)
{
if(d[pr]==i-1) pr++;
while(pr<=ul&&v[d[ul]]>=v[i+k-1])
ul--;
ul++;
d[ul]=i+k-1;
S=S+v[d[pr]];
}
fout<<S;
fin.close();
fout.close();
return 0;
}
