Pagini recente » Istoria paginii utilizator/numerge1998 | Profil alinutzu_vip | Diferente pentru implica-te/arhiva-educationala intre reviziile 51 si 52 | Diferente pentru okr/20084 intre reviziile 2 si 3 | Cod sursa (job #2889472)
#include <bits/stdc++.h>
using namespace std;
ifstream f("deque.in");
ofstream g"deque.out");
const int maxx.dim=5000005;
int v[maxx.dim];
int main()
{
int n, k;
long long sum=0;
deque<int>mini, minipos;
f>>n>>k;
for(int i=1; i<=n; i++)
{
f>>v[i];
}
for(int i=1; i<=n+1; i++)
{
while(!mini.empty() and mini.back()>v[i])
{
mini.pop_back();
minipos.pop_back();
}
if(i>k)
{
sum=sum+mini.front();
}
if(!mini.empty() and i-k>=minipos.front())
{
minipos.pop_front();
mini.pop_front();
}
mini.push_back(v[i]);
minipos.push_back(i);
}
g<<sum;
return 0;
}