Pagini recente » Cod sursa (job #2054552) | Cod sursa (job #1590887) | Cod sursa (job #2054865) | Cod sursa (job #648181) | Cod sursa (job #2591027)
#include<bits/stdc++.h>
using namespace std;
#define mp make_pair
#define pb push_back
#define ft first
#define sc second
#define ll long long
ifstream fin("deque.in"); ofstream fout("deque.out");
int n, t, q, k, l;
vector<int> b;
void bs1(int x, int l, int r){
int m=(l+r)/2;
if(l==r){ b.erase(b.begin()+m, b.begin()+m+1 ); return; }
if(b[m]>=x){bs1(x, l, m); }
else{bs1(x, m+1, r); }
}
void bs2(int x, int l, int r){
int m=(l+r)/2;
if(l==r){ vector<int> a={x}; b.insert(b.begin()+m, a.begin(), a.end() );return; }
if(b[m]>=x){bs2(x, l, m); }
else{bs2(x, m+1, r); }
}
int main(){
fin>>n>>k;
ll sum=0;
int m=10e8;
vector<int> s;
for(int i=0; i<k; i++){
s.pb(0);
b.pb(0);
fin>>s[i];
b[i]=s[i];
}
sort(b.begin(), b.end());
sum+=b[0];
for(int i=0; i<b.size(); i++){
cout<<b[i]<<" ";
}
cout<<"\n";
for(int i=0; i<n-k; i++){
bs1(s[0], 0, b.size() );
s.erase(s.begin(), s.begin()+1 );
int x; fin>>x;
s.pb(x);
bs2(x, 0, b.size());
sum+=b[0];
for(int i=0; i<b.size(); i++){
cout<<b[i]<<" ";
}
cout<<"\n";
}
fout<<sum;
return 0;
}