Pagini recente » Cod sursa (job #1041172) | Cod sursa (job #455300)
Cod sursa(job #455300)
#include <fstream>
#include <deque>
using namespace std;
ifstream fin; ofstream fout;
deque <long> a,b; long n,k,i,x; long long sm=0;
void adauga (long x,long y) {
long i;
for (i=a.size (); i>0; i--)
if (a[i-1]>y) {a.pop_back (); b.pop_back (); }
a.push_back (y);
b.push_back (x);
}
int main () {
fin.open ("deque.in"); fout.open ("deque.out");
fin>>n>>k;
for (i=1; i<=k-1; i++) {
fin>>x;
adauga (i,x);
}
for (i=k; i<=n; i++) {
fin>>x;
adauga (i,x);
if (b[0]<=i-k) {a.pop_front (); b.pop_front (); }
sm+=a[0];
}
fout<<sm<<endl;
fin.close (); fout.close ();
return 0;
}