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
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;
void Ciuchcia()
{
int x, wiersz=0, i=1, odp=0, waga, glod, n, h=0, wielkosc;
vector <int> szprotki;
vector <int> sprawdzacz;
cin >> x;
for(int i=0; i<x; i++)
{
    cin >> waga;
    szprotki.push_back(waga);
    sprawdzacz.push_back(1);
}
sort( szprotki.begin(), szprotki.end() );
cin >> x;
for(int i=0; i<x; i++)
{
    cin >> n;
    if(n==1)
    {
        cin >> waga >> glod;
        h=0;
        odp=0;
        wielkosc=szprotki.size();
        sort( szprotki.begin(), szprotki.end() );
        sprawdzacz.clear();
        for(int j=0; j<wielkosc; j++)
        {
            sprawdzacz.push_back(1);
        }


        for(int j=wielkosc-1; j>=0; j--)
        {//cout << sprawdzacz[j];
            if(waga>szprotki[j] && szprotki[j]!=0 && glod>waga && sprawdzacz[j]==1)
            {
                waga=waga+szprotki[j];
                odp++;
                sprawdzacz[j]=0;
                j=wielkosc;
                //cout << endl;
            }

            if(glod<waga)
            {
                break;
            }


        }
        //cout << endl;
        if(glod<=waga)
        {
            cout << odp << endl;
        }
        else
        {
            cout << "-1" << endl;
        }

    }
    if(n==2)
    {
        cin >> waga;
        szprotki.push_back(waga);

    }
    if(n==3)
    {
        cin >> waga;
        for(int j=0; j<szprotki.size(); j++)
        {
            if(szprotki[j]=waga)
            {
                szprotki[j]=0;
            }
        }
    }
}
}
int main()
{
    Ciuchcia();
}