Pagini recente » Cod sursa (job #614201) | Cod sursa (job #2986221) | Cod sursa (job #2940060) | Cod sursa (job #750864) | Cod sursa (job #2205235)
#include <fstream>
#include <deque>
#define pb push_back
using namespace std;
ifstream in("deque.in");
ofstream out("deque.out");
deque <int> d1;
deque <int> d2;
int main()
{
int n,k,i,j,nr;
long long s=0;
in>>n>>k;
for(i=1; i<=n; i++)
{
in>>nr;
if(i<=k)
{
while(!d1.empty() && d1.back()>nr)
{
d1.pop_back();
d2.pop_back();
}
d1.push_back(nr);
d2.push_back(i);
if(i==k)
s+=d1.front();
}
else
{
while(!d2.empty()&&d2.front()<i-k+1)
{
d2.pop_front();
d1.pop_front();
}
while(!d1.empty() && d1.back()>nr)
{
d1.pop_back();
d2.pop_back();
}
d1.push_back(nr);
d2.push_back(i);
s+=d1.front();
}
}
out<<s;
return 0;
}