<Problem>
https://www.spoj.com/PTIT/problems/BCACM11C/
#include <iostream>
using namespace std;
int analyze(int n) {
int t = 0;
while (n > 0) {
switch (n % 10) {
case 1: {t += 2; break; }
case 2: {t += 5; break; }
case 3: {t += 5; break; }
case 4: {t += 4; break; }
case 5: {t += 5; break; }
case 6: {t += 6; break; }
case 7: {t += 3; break; }
case 8: {t += 7; break; }
case 9: {t += 6; break; }
case 0: {t += 6; break; }
}
n /= 10;
}
return t;
}
int result(int n) {
int i = 1;
while (true) {
if (analyze(i) == n) {
break;
}
i++;
}
return i;
}
int main() {
int t;
cin >> t;
while (t--) {
int n;
cin >> n;
if (n <= 17) cout << result(n);
else {
int q = n / 7;
switch (n % 7) {
case 4: { cout << "20" + std::string(q - 1, '8'); break; }
case 5: { cout << "2" + std::string(q, '8'); break; }
case 6: { cout << "6" + std::string(q, '8'); break; }
case 0: { cout << std::string(q, '8'); break; }
case 1: { cout << "10" + std::string(q - 1, '8'); break; }
case 2: { cout << "1" + std::string(q, '8'); break; }
case 3: { cout << "200" + std::string(q - 2, '8'); break; }
}
}
int r = n / 2;
cout << " " << ((n % 2 == 0) ? std::string(r, '1') : "7" + std::string(r - 1, '1')) << endl;
}
return 0;
}