Pagini recente » Cod sursa (job #401760) | Cod sursa (job #1019435) | Cod sursa (job #1625608) | Cod sursa (job #1480345) | Cod sursa (job #1060795)
#include <fstream>
#include <deque>
#define in "deque.in"
#define out "deque.out"
#define Max_Size 5000009
#define LL long long
std :: ifstream f(in);
std :: ofstream g(out);
int N, K;
int A[Max_Size];
LL rez;
std :: deque < int > DQ;
inline void Read_Data()
{
f >> N >> K;
for(int i = 1; i <= N; ++i) f >> A[i];
}
inline void Solve()
{
for(int i = 1; i <= N; ++i)
{
while(!DQ.empty() && A[ DQ.back() ] >= A[i]) DQ.pop_back();
DQ.push_back(i);
if(i - DQ.front() + 1 > K) DQ.pop_front();
if(i >= K) rez += A[DQ.front()];
}
}
int main()
{
Read_Data();
Solve();
g << rez << '\n';
g.close();
return 0;
}