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
/*
liczbę zapisujemy dwójkowo, i przeglądamy od prawej
kolejne cyfry (bez najstarszej) wyświetlamy tak:

0: (1+1)*
1: (1+(1+1)*

najstarszą jedynkę zapisujemy jako 1
na koniec domykamy wszystkie niezamknięte nawiasy

limity:
1<=k<=10^9<2^30

przy 30 bitach ustawionych będziemy mieć 3*29+1 = 88 jedynek
w innych przypadkach będzie odpowiednio mniej
*/

#include <stdio.h>

int main()
{
  unsigned t, k, n;

  scanf("%u", &t);
  while (t--)
  {
    scanf("%u", &k);
    n = 0;
    while (k > 1)
    {
      printf("(1+(1+1)*"+3*!(k%2));
      n += k%2;
      k >>= 1;
    }
    if (k) printf("1");
    while (n--) printf(")");
    puts("");
  }
  return 0;
}