#include <bits/stdc++.h> using namespace std; vector <char> FAST_REDUCE(int a) { vector <char> out; vector <char> in; if(a == 1) {out.push_back('1'); return out;} if(a == 2) { //out.push_back('{'); out.push_back('1'); out.push_back('+'); out.push_back('1'); //out.push_back('}'); return out; } if(a%2 == 1) { // out.push_back('['); out.push_back('1'); out.push_back('+'); out.push_back('('); in = FAST_REDUCE(a-1); for(int i = 0 ; i < in.size(); i++) out.push_back(in[i]); //out.push_back(')'); out.push_back(')'); return out; } else { out.push_back('('); in = FAST_REDUCE(a/2); for(int i = 0 ; i < in.size(); i++) out.push_back(in[i]); out.push_back(')'); out.push_back('*'); out.push_back('('); out.push_back('1'); out.push_back('+'); out.push_back('1'); out.push_back(')'); return out; } } int main() { int q; scanf("%d", &q); while(q--) { int a; vector <char> result; scanf("%d", &a); result = FAST_REDUCE(a); int counter = 0; for(int i = 0 ; i < result.size(); i++) if(result[i] == '1') counter++; if(counter > 100) printf("NIE\n"); else { for(int i = 0 ; i < result.size(); i++) printf("%c", result[i]); printf("\n"); } } }
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 | #include <bits/stdc++.h> using namespace std; vector <char> FAST_REDUCE(int a) { vector <char> out; vector <char> in; if(a == 1) {out.push_back('1'); return out;} if(a == 2) { //out.push_back('{'); out.push_back('1'); out.push_back('+'); out.push_back('1'); //out.push_back('}'); return out; } if(a%2 == 1) { // out.push_back('['); out.push_back('1'); out.push_back('+'); out.push_back('('); in = FAST_REDUCE(a-1); for(int i = 0 ; i < in.size(); i++) out.push_back(in[i]); //out.push_back(')'); out.push_back(')'); return out; } else { out.push_back('('); in = FAST_REDUCE(a/2); for(int i = 0 ; i < in.size(); i++) out.push_back(in[i]); out.push_back(')'); out.push_back('*'); out.push_back('('); out.push_back('1'); out.push_back('+'); out.push_back('1'); out.push_back(')'); return out; } } int main() { int q; scanf("%d", &q); while(q--) { int a; vector <char> result; scanf("%d", &a); result = FAST_REDUCE(a); int counter = 0; for(int i = 0 ; i < result.size(); i++) if(result[i] == '1') counter++; if(counter > 100) printf("NIE\n"); else { for(int i = 0 ; i < result.size(); i++) printf("%c", result[i]); printf("\n"); } } } |