#include <bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
vector <int> v;
for(int i=0;i<n;i++){
int x;
cin>>x;
v.push_back(x);
}
sort(v.begin(),v.end());
int k;
cin>>k;
for(int i=0;i<k;i++){
int w;
cin>>w;
if(w==1){
int mamy,chcemy;
cin >> mamy>> chcemy;
vector <int> k =v;
int z=0;
while(mamy<chcemy&&k[0]<mamy&&k.size()>0){
int a=0;
int b=k.size();
while(a<b){
int mid=a+(b-a)/2;
if(k[mid]<mamy){
a=mid+1;
}else{
b=mid;
}
}
mamy+=k[a-1];
k.erase(k.begin()+a-1);
z++;
}
if(mamy>=chcemy){
cout<<z<<"\n";
}else{
cout<<-1<<"\n";
//cout << k[a];
}
}else if(w==2){
int h;
cin>>h;
v.push_back(h);
sort(v.begin(),v.end());
}else if(w==3){
int h;
cin>>h;
int a=0;
int b=v.size();
while(a<b){
int mid=a+(b-a)/2;
if(v[mid]<h){
a=mid+1;
}else{
b=mid;
}
}
v.erase(v.begin()+a);
}
}
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | #include <bits/stdc++.h> using namespace std; int main(){ int n; cin>>n; vector <int> v; for(int i=0;i<n;i++){ int x; cin>>x; v.push_back(x); } sort(v.begin(),v.end()); int k; cin>>k; for(int i=0;i<k;i++){ int w; cin>>w; if(w==1){ int mamy,chcemy; cin >> mamy>> chcemy; vector <int> k =v; int z=0; while(mamy<chcemy&&k[0]<mamy&&k.size()>0){ int a=0; int b=k.size(); while(a<b){ int mid=a+(b-a)/2; if(k[mid]<mamy){ a=mid+1; }else{ b=mid; } } mamy+=k[a-1]; k.erase(k.begin()+a-1); z++; } if(mamy>=chcemy){ cout<<z<<"\n"; }else{ cout<<-1<<"\n"; //cout << k[a]; } }else if(w==2){ int h; cin>>h; v.push_back(h); sort(v.begin(),v.end()); }else if(w==3){ int h; cin>>h; int a=0; int b=v.size(); while(a<b){ int mid=a+(b-a)/2; if(v[mid]<h){ a=mid+1; }else{ b=mid; } } v.erase(v.begin()+a); } } } |
English