Pagini recente » Istoria paginii runda/cerculdeinfo-lectia15-ev_p_s_q_dq_dp/clasament | Istoria paginii runda/lasm203.03.2017/clasament | Cod sursa (job #303497) | Cod sursa (job #2306051) | Cod sursa (job #2570167)
#include <bits/stdc++.h>
#define FILE_NAME "deque"
#define fast ios_base :: sync_with_stdio(0); cin.tie(0);
#pragma GCC optimize("O3")
#define NMAX 5000000
using namespace std;
ifstream f(FILE_NAME ".in");
ofstream g(FILE_NAME ".out");
typedef long long ll;
typedef long double ld;
typedef pair<int,int> pi;
typedef pair<ll,ll> llp;
typedef pair<ld,ld> pct;
const ll inf = 1LL << 60;
const ll mod = 1e9 + 7;
const ld eps = 1e-9;
void add(ll &a , ll b)
{
a += b;
a %= mod;
}
void sub(ll &a, ll b)
{
a = (a - b + mod) % mod;
}
ll n, k, sum, v[NMAX];
deque <ll> Q;
int main()
{
f >> n >> k;
for(int i = 1; i <= n; ++i)
f >> v[i];
for(int i = 1; i <= n; ++i)
{
while(!Q.empty() && v[i] <= v[Q.back()]) Q.pop_back();
Q.push_back(i);
if(Q.front() == i - k) Q.pop_front();
if(i - k >= 0)
sum += v[Q.front()];
}
g << sum;
f.close();
g.close();
return 0;
}