Pagini recente » Cod sursa (job #1514727) | Cod sursa (job #2059975) | Cod sursa (job #430096) | Cod sursa (job #188751) | Cod sursa (job #1881114)
#include<fstream>
#include<deque>
#include<algorithm>
using namespace std;
ifstream cin("deque.in");
ofstream cout("deque.out");
long long n, S=0, k, mini1 = 10000010, poz1=1, mini2 = 10000010, poz2=0;
deque <long long> d;
int main(){
cin>>n>>k;
long long x;
for(int i=1; i<=k; ++i){
cin>>x; d.push_back(x);
if(x<mini1) mini1=x, poz1=i;
else if(x<mini2 && i>poz1) mini2=x, poz2=i;
}
S+=mini1;
for(int i=k+1; i<=n; ++i){
cin>>x; d.push_back(x); d.pop_front();
if(poz1<i-k+1){
if(x<mini2){
mini1 = x; poz2=0; poz1=i; mini2= 10000010;
}
else{
mini1 = mini2; poz1 = poz2; mini2 = 10000010; poz2=0;
}
}
else if(x<mini1){
mini1=x; poz1 =i; poz2=0; mini2= 10000010;
}
else if(x<mini2){
mini2= x; poz2 = i;
}
S+=mini1;
}
cout<<S;
return 0;
}