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
84
85
86
87
88
89
90
91
92
93
94
95
#include <iostream>
#include <algorithm>

using namespace std;

int main()
{
    cin.tie();
    ios_base::sync_with_stdio(false);
    long Sn, p, q, r, t, S[400000+15], Z, K, W;
    bool Sb[400000+15];
    cin >> Sn;
    for(int i=1; i<=Sn; ++i)
    {
        cin >> S[i];
    }
    sort(S+1, S+Sn+1);
    cin >> Z;
    for(int i=1; i<=Z; ++i)
    {
        cin >> p;
        if(p==1)
        {
            p=1;
            q=0;
            r=0;
            t=1;
            cin >> W;
            cin >> K;
            while(W<K)
            {
                if(p==t)
                {
                    while(W>S[p] && p<=Sn)
                    {
                        if(r<p)
                        {
                            r=p;
                            Sb[p]=0;
                        }
                        ++p;
                    }
                }
                --p;
                t=p;
                while(Sb[p]==1 && p>=1)
                    --p;
                if(p==0)
                {
                    q=-1;
                    break;
                }
                W=W+S[p];
                Sb[p]=1;
                ++q;
                if(S[t+1]<W)
                    p=t;
            }
            p=1;
            cout << q << endl;
        }
        if(p==2)
        {
            ++Sn;
            p=Sn;
            cin >> W;
            while(S[p-1]>W)
            {
                q=S[p-1];
                S[p]=q;
                --p;
            }
            S[p]=W;
            p=2;
        }
        if(p==3)
        {
            p=Sn;
            t=S[p];
            cin >> W;
            while(S[p-1]>W)
            {
                q=t;
                t=S[p-1];
                S[p-1]=q;
                --p;
            }
            q=t;
            S[p-1]=q;
            --Sn;
            p=3;
        }
    }
    return 0;
}