#include <bits/stdc++.h> using namespace std; int n, t[1000005], idx, q, op, s, k, a[1000005], mam, zle, w, sav, ans; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin>>n; for (int i = 1; i <= n; i++) { cin>>t[i]; } idx = n; cin>>q; for (int i = 1; i <= q; i++) { cin>>op; if (op==1) { cin>>mam>>k; ans = 0; zle = 0; for (int j = 1; j <= idx; j++) a[j] = t[j]; while(mam < k) { sav = 0; for (int j = 1; j <= idx; j++) { if (a[j] != 0 && a[j] < mam && a[j] > a[sav]) sav = j; } if (sav) mam += a[sav], ans++, a[sav]=0; else {zle = 1; break;} } if (!zle) cout<<ans<<endl; else cout<<-1<<endl; } else if (op==2) { cin>>w; t[++idx]=w; } else { cin>>w; for (int j = 1; j <= idx; j++) { if (t[j]==w) {t[j] = t[idx]; t[idx]=0; break;} } idx--; } } }
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 | #include <bits/stdc++.h> using namespace std; int n, t[1000005], idx, q, op, s, k, a[1000005], mam, zle, w, sav, ans; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin>>n; for (int i = 1; i <= n; i++) { cin>>t[i]; } idx = n; cin>>q; for (int i = 1; i <= q; i++) { cin>>op; if (op==1) { cin>>mam>>k; ans = 0; zle = 0; for (int j = 1; j <= idx; j++) a[j] = t[j]; while(mam < k) { sav = 0; for (int j = 1; j <= idx; j++) { if (a[j] != 0 && a[j] < mam && a[j] > a[sav]) sav = j; } if (sav) mam += a[sav], ans++, a[sav]=0; else {zle = 1; break;} } if (!zle) cout<<ans<<endl; else cout<<-1<<endl; } else if (op==2) { cin>>w; t[++idx]=w; } else { cin>>w; for (int j = 1; j <= idx; j++) { if (t[j]==w) {t[j] = t[idx]; t[idx]=0; break;} } idx--; } } } |