Pagini recente » Cod sursa (job #1973504) | Cod sursa (job #2984410) | Cod sursa (job #2164919) | Cod sursa (job #1580660) | Cod sursa (job #632678)
Cod sursa(job #632678)
//026-deque cu array[]
#include<iostream>
#include<fstream>
#include<deque>
#include<ctime>
using namespace std;
int n,k,v[5000001];
long long sum;
int deq[5000001];
void citire()
{
ifstream fin("deque.in"); //grader_test15.in
fin>>n>>k;
for (int i=1;i<=n;++i)
fin>>v[i];
fin.close();
}
void minime()
{
int inc=1, sf=0;
for (int i=1;i<=n;i++)
{
while ( (inc<=sf) && (v[i]<=v[deq[sf]]) ) sf--;
deq[++sf]=i;
if (deq[inc]==i-k) inc++;
if (i>=k) sum+=v[deq[inc]];
}
}
int main ()
{
clock_t start =clock();
citire();
cout<<clock()-start;
minime();
ofstream fout("deque.out");
fout<<sum;
fout.close();
return 0;
}