#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); } } } |