#include <bits/stdc++.h>
using namespace std;
vector <long long> odw;
int szp[10000000];
long long pom, n, a, b, w, k, x=0;
int main()
{
ios_base::sync_with_stdio(0);
cin.tie();
cin>>n;
for (int i = 0; i < n; i++)
{
cin>>pom;
++szp[pom];
}
cin>>w;
pom=0;
for (int j = 0; j < w; j++)
{
cin>>pom>>a;
if(pom==1)
{
k=1;
x=0;
cin>>b;
while(a < b && k!=0)
{
for (int i = a-1; i >0; --i)
{
k=0;
if(szp[i]!=0)
{
//cout<<i;
a+=i;
++k;
++x;
--szp[i];
odw.push_back(i);
break;
}
}
}
if(a>=b)
{
cout<<x<<"\n";
}
else
{
cout<<"-1\n";
}
for (long unsigned int i = 0; i < odw.size(); i++)
{
++szp[odw[i]];
}
odw.clear();
}
else if (pom==2)
{
++szp[a];
}
else if(pom==3)
{
--szp[a];
}
}
return 0;
}
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 67 68 69 70 71 72 73 74 75 76 | #include <bits/stdc++.h> using namespace std; vector <long long> odw; int szp[10000000]; long long pom, n, a, b, w, k, x=0; int main() { ios_base::sync_with_stdio(0); cin.tie(); cin>>n; for (int i = 0; i < n; i++) { cin>>pom; ++szp[pom]; } cin>>w; pom=0; for (int j = 0; j < w; j++) { cin>>pom>>a; if(pom==1) { k=1; x=0; cin>>b; while(a < b && k!=0) { for (int i = a-1; i >0; --i) { k=0; if(szp[i]!=0) { //cout<<i; a+=i; ++k; ++x; --szp[i]; odw.push_back(i); break; } } } if(a>=b) { cout<<x<<"\n"; } else { cout<<"-1\n"; } for (long unsigned int i = 0; i < odw.size(); i++) { ++szp[odw[i]]; } odw.clear(); } else if (pom==2) { ++szp[a]; } else if(pom==3) { --szp[a]; } } return 0; } |
English