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
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main()
{
    ios_base::sync_with_stdio(0);
    int n, k;
    cin >> n;
    for (int dsa=0; dsa<n; dsa++)
    {
        cin >> k;
        if (k==1)
        {
            cout << "1*1\n";
            continue;
        }
        if (k==2)
        {
            cout << "1+1\n";
            continue;
        }
        vector <bool> operac; //0-mnozenie, 1-dodawanie
        int licznik=0;
        while (k>1)
        {
            if (k&1==1)
            {
                k-=1;
                operac.push_back(1);
            }
            else
            {
                k/=2;
                operac.push_back(0);
                licznik++;
            }
            licznik++;
        }
        if (licznik>100)
        {
            cout << "NIE\n";
            continue;
        }


        string a;
        if (!operac.empty())
        {
            if (operac[operac.size()-1])
            {
                a="1*1";
            }
            else
            {
                a="(1+1)";
            }
            operac.pop_back();        }
        while(operac.size()>1)
        {
            if (operac[operac.size()-1])
            {
                a='(' + a + "+1)";
            }
            else
            {
                a=a+"*(1+1)";
            }
            operac.pop_back();
        }
        if (operac[0])
            {
                a=a + "+1";
            }
            else
            {
                a=a+"*(1+1)";
            }
        cout << a << endl;
    }
}