Cod sursa(job #2298444)
| Utilizator | Data | 8 decembrie 2018 10:28:13 | |
|---|---|---|---|
| Problema | Deque | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.5 kb |
#include <fstream>
using namespace std;
ifstream fin ("deque.in");
ofstream fout ("deque.out");
int n,k,i,A[5000010],D[5000010],st,dr,j;
long long s;
int main(){
fin>>n>>k;
for (i=1;i<=n;i++)
fin>>A[i];
st=1;
dr=0;
for (i=1;i<=n;i++){
while (st<=dr && A[i]<=A[D[dr]])
dr--;
D[++dr]=i;
if(D[st]==i-k)
st++;
/* for(j=st;j<=dr;j++)
fout<<A[D[j]]<<" ";
fout<<"\n"; */
if (i>=k)
s+=A[D[st]];
}
fout<<s;
return 0;
}
