Cod sursa(job #3161151)
| Utilizator | Data | 25 octombrie 2023 21:53:55 | |
|---|---|---|---|
| Problema | Deque | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.62 kb |
#include <fstream>
#include <vector>
using namespace std;
ifstream cin("deque.in");
ofstream cout("deque.out");
int v[5000005],v2[5000005];
int main()
{
int st=0,dr=-1,n,k;
cin>>n>>k;
for(int i=0; i<n; i++)
cin>>v[i];
for(int i=0; i<k-1; i++)
{
while(dr>=st && v[i]<=v[v2[dr]])
dr--;
v2[++dr]=i;
}
long long int s=0;
for(int i=k-1; i<n; i++)
{
while(dr>=st && v[i]<=v[v2[dr]])
dr--;
v2[++dr]=i;
s+=v[v2[st]];
if(i-k+1==v2[st])
st++;//cout<<s<<'\n';
}
cout<<s;
return 0;
}
