Pagini recente » Monitorul de evaluare | Cod sursa (job #3328084) | Borderou de evaluare (job #1480578) | Borderou de evaluare (job #3107662) | Cod sursa (job #3325945)
/*
_____ _____ _______
/\ \ /\ \ /::\ \
/::\____\ /::\ \ /::::\ \
/:::/ / /::::\ \ /::::::\ \
/:::/ / /::::::\ \ /::::::::\ \
/:::/ / /:::/\:::\ \ /:::/~~\:::\ \
/:::/ / /:::/__\:::\ \ /:::/ \:::\ \
/:::/ / /::::\ \:::\ \ /:::/ / \:::\ \
/:::/ / _____ /::::::\ \:::\ \ /:::/____/ \:::\____\
/:::/____/ /\ \ /:::/\:::\ \:::\ \ ::: | |:::| |
|:::| / /::\____\ /:::/ \:::\ \:::\____\ |:::|____| |:::| |
|:::|____\ /:::/ / \::/ \:::\ /:::/ / \:::\ \ /:::/ /
\:::\ \ /:::/ / \/____/ \:::\/:::/ / \:::\ \ /:::/ /
\:::\ \ /:::/ / \::::::/ / \:::\ /:::/ /
\:::\ /:::/ / \::::/ / \:::\__/:::/ /
\:::\__/:::/ / /:::/ / \::::::::/ /
\::::::::/ / /:::/ / \::::::/ /
\::::::/ / /:::/ / \::::/ /
\::::/ / /:::/ / \::/____/
\::/____/ \::/ / ~~
~~ \/____/
*/
#include <bits/stdc++.h>
#define ll long long
#define ull unsigned long long
#define ins(x) insert(x)
#define mp(x,y) make_pair(x,y)
#define pb(x) push_back(x)
#define fast_ios ios_base::sync_with_stdio(0),cin.tie(nullptr),cout.tie(nullptr);
#define all(v) (v).begin() , (v).end()
using namespace std;
ifstream fin ( "deque.in" ) ;
ofstream fout ( "deque.out" ) ;
ll nxt()
{
ll x;
fin >> x ;
return x;
}
void close_files()
{
fin.close();
fout.close();
}
signed main()
{
ios_base::sync_with_stdio(0);
fin.tie(nullptr);
fout.tie(nullptr);
ll n , k ;
fin >> n >> k ;
deque<pair<ll,ll>>dq;
for ( ll i = 1 ; i <= k ; ++ i )
{
ll x;
fin >> x ;
while ( !dq.empty() && dq.back().first >= x )
dq.pop_back();
dq.push_back(make_pair(x,i));
}
ll suma = dq.front().first ;
for ( ll i = k + 1 ; i <= n ; ++ i )
{
ll x;
fin >> x;
while ( !dq.empty() && dq.back().first >= x )
dq.pop_back();
dq.push_back(make_pair(x,i));
if ( dq.front().second == i - k )
dq.pop_front();
suma += dq.front().first ;
}
fout << suma ;
close_files();
return 0;
}