Pagini recente » Cod sursa (job #1597900) | Cod sursa (job #2604914) | Cod sursa (job #2740095) | Cod sursa (job #1455042) | Cod sursa (job #374758)
Cod sursa(job #374758)
#include<fstream>
using namespace std;
const int N = 1<<23;
int st=0, dr=-1, n, k, dq[N], v[N];
long long s;
ifstream in("deque.in");
ofstream out("deque.out");
inline void stanga(int i)
{
if(i - dq[st] == k)
++st;
}
inline void dreapta(int i)
{
while(st <= dr && v[i] <= v[dq[dr]])
--dr;
dq[++dr] = i;
}
void citire()
{
int i;
in>>n;
in>>k;
for(i=0; i<n; i++)
in>>v[i];
}
int main()
{
int i;
citire();
for(i=0; i<k-1; i++)
dreapta(i);
for(; i<n; i++)
{
stanga(i);
dreapta(i);
s += v[dq[st]];
}
out<<s;
return 0;
}