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