Pagini recente » Cod sursa (job #669665) | Cod sursa (job #3318699) | Cod sursa (job #2222729) | Cod sursa (job #2220073) | Cod sursa (job #2328049)
#include <fstream>
#include <deque>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
struct tip{int val; int poz;};
deque <tip> mi;
tip x;
int k,n,i;
long long sum;
int main()
{
fin>>n>>k;
fin>>x.val;
x.poz=1;
mi.push_back(x);
if(k==1)
sum+=x.val;
for(i=2;i<=n;i++)
{
fin>>x.val;
x.poz=i;
while(!mi.empty() && mi.back().val>x.val)
mi.pop_back();
mi.push_back(x);
while(!mi.empty() && i-mi.front().poz+1>k)
mi.pop_front();
if(i>=k)
sum+=mi.front().val;
}
fout<<sum;
return 0;
}