Pagini recente » Cod sursa (job #2554922) | Cod sursa (job #2930309) | Cod sursa (job #931323) | Cod sursa (job #343139) | Cod sursa (job #1861677)
#include <fstream>
#include <queue>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
struct RaresHolmes{
int val,poz;
}a;
long long n, k,smin,i,capat1,capat2;
deque <RaresHolmes> q;
int main()
{
fin >> n >> k;
for(int i = 1; i <= k; i++)
{
fin >>a.val;
a.poz=i;
while(!q.empty()&&q.back().val>a.val)
q.pop_back();
q.push_back(a);
}
smin=q.front().val;
capat1=1;capat2=k;
for(i=k+1;i<=n;i++)
{
fin>>a.val;a.poz=i;capat1++;capat2++;
if(q.front().poz<capat1)
q.pop_front();
while(!q.empty()&&q.back().val>a.val)
q.pop_back();
q.push_back(a);
smin+=q.front().val;
}
fout<<smin<<'\n';
return 0;
}