Cod sursa(job #1152583)
Utilizator | Data | 24 martie 2014 20:21:00 | |
---|---|---|---|
Problema | Deque | Scor | 5 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.49 kb |
#include <iostream>
#include<fstream>
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
long n,a[5000000],k,s,i;
void recaut(long i,long &minim) {long j;
minim=a[i];
for(j=i;j>=i-k+1;j--) if(minim>a[j]) minim=a[j];
}
int main()
{long minim;
f>>n>>k;
for(i=1;i<=n;i++) f>>a[i];
for(i=1;i<=k;i++) {
if(a[i]<minim) minim=a[i];
}
s=s+minim;
for(i=k+1;i<=n;i++) {
if(minim==a[i-k]) recaut(i,minim);
else if(minim>a[i]) minim=a[i];
s=s+minim;
}
g<<s;
}