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
77
78
79
80
81
82
83
#include <bits/stdc++.h>

using namespace std;

int main(){
    int n, q, b;
    unsigned long long a, w, s, k, o=0;
    vector<unsigned long long> szprotki;
    
    scanf("%d", &n);
    
    for(int i = 0; i<n; ++i){
   	 scanf("%llu", &a);
   	 szprotki.push_back(a);
   	 o+=a;
    }
    
    sort(szprotki.begin(), szprotki.end());
    
    scanf("%d", &q);
    
    for(int i = 0; i<q; ++i){
   	 scanf("%d", &b);
   	 
   	 if(b==1){
   		 
   		 scanf("%llu%llu", &s, &k);
   		 vector<unsigned long long> tymszprotki (szprotki);
   		 unsigned long long p, zw=0, ss=s, kk=k;
   		 bool cw = false;
   		 if(ss==kk){
   				 printf("%d\n", 0);
   		 }else{
   		 while(true){
   			 if(tymszprotki[0]>=s || o<(k-s)){
   				 cw=true;
   				 break;
   			 }
   			 for(unsigned long long j = 0; j<tymszprotki.size(); ++j){
   				 
   				 if(tymszprotki[j]<s){
   					 p=tymszprotki[j];
   				 }
   			 
   				 else{
   					 tymszprotki.erase(tymszprotki.begin() + (j-1));
   					 break;
   				 }
   				 //cout << s << " " << tymszprotki[0] << '\n';
   				 
   			 }
   			 s+=p;
   			 zw++;
   			 if(s>=k){
   				 printf("%llu\n", zw);
   				 cw = false;
   				 break;
   			 }
   		 }}
   		 if(cw==true){
   				 cout << -1 << '\n';
   		 }
   	 }else if(b==2){
   		 
   		 scanf("%llu", &w);
   		 
   		 szprotki.push_back(w);
   		 
   		 sort(szprotki.begin(), szprotki.end());
   		 
   	 }else{
   		 
   		 scanf("%llu", &w);
   		 
   		 for(unsigned long long k = 0; k<szprotki.size(); ++k){
   			 if(szprotki[k]==w){
   				 szprotki.erase(szprotki.begin() + k);
   			 }
   		 }
   		 
   	 }
    }
}