RT
J组T3,样例都过了,但交到洛谷上发现RE了
#include <bits/stdc++.h>
using namespace std;
int n;
int a[20] = {6, 2, 5, 5, 4, 5, 6, 3, 7, 6};
int Get (int now) {
if (!now) return 0;
return (now - 1) / 7 + 1;
}
int Sticks () {
if (n <= 1) cout << -1;
else {
int sta = 1;
string s = "";
int f = 0;
while (n) {
if (n % 7 == 0) {
int t = n / 7;
for (int i = 1; i <= t; i ++) putchar ('8');
break;
} else if ((n - 1) % 7 == 0) {
printf ("10");
int t = (n - 1) / 7 - 1;
for (int i = 1; i <= t; i ++) putchar ('8');
break;
}
int minn = 0x3f3f3f, t = 0;
for (int i = sta; i <= 9; i ++) {
int need = Get (n - a[i]);
if (need < minn) {
t = i;
minn = need;
}
}
n -= a[t];
sta = 0;
putchar (char (t + '0'));
}
}
cout << '\n';
}
int main () {
freopen ("sticks.in", "r", stdin);
freopen ("sticks.out", "w", stdout);
int t;
scanf ("%d", &t);
while (t --) {
scanf ("%d", &n);
Sticks ();
}
return 0;
}