Cod sursa(job #2820425)
| Utilizator | Data | 20 decembrie 2021 12:34:51 | |
|---|---|---|---|
| Problema | Deque | Scor | 60 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.73 kb |
#include <fstream>
#include <deque>
#define ll long long
using namespace std;
ifstream cin ("deque.in");
ofstream cout ("deque.out");
ll n,m,i,a,sum=0;
deque <pair<ll,ll> > v;
int main()
{
cin>>n>>m;
for (i=1;i<=n;++i)
{
cin>>a;
if (!v.empty() && a<=v[0].first)
{
v.clear();
v.push_back({a,i});
if (i>=m) sum+=a;
}
else
{
while (!v.empty() && v.back().first>a) v.pop_back();
v.push_back({a,i});
if (i>=m)
{
while (v[0].second<=i-m) v.pop_front();
sum+=v[0].first;
}
}
}
cout<<sum;
return 0;
}
