Pagini recente » Cod sursa (job #1622515) | Cod sursa (job #341399) | Cod sursa (job #1046863) | Cod sursa (job #418658) | Cod sursa (job #1356459)
#include <fstream>
#include <deque>
#include <algorithm>
using namespace std;
#define INF 0x3f3f3f3f
#define MaxN 5000010
ifstream is("deque.in");
ofstream os("deque.out");
deque<int> Q;
int a[MaxN];
int n, k;
int x;
long long sumf;
int main()
{
is >> n >> k;
int pos = 1;
for(int i = 1; i <= n; ++i)
{
is >> a[i];
if(i > k) pos++;
if(i > k && Q.front() < pos)
{
Q.pop_front();
}
while(!Q.empty() && a[Q.back()] > a[i])
Q.pop_back();
Q.push_back(i);
if(i >= k)
{
sumf += a[Q.front()];
}
}
os << sumf;
is.close();
os.close();
return 0;
}