Pagini recente » Cod sursa (job #196636) | Cod sursa (job #492467) | Cod sursa (job #2537413) | Cod sursa (job #2934777) | Cod sursa (job #632677)
Cod sursa(job #632677)
//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("grader_test15.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;
}