赛时60,赛后写一遍成10了[T-T]
查看原帖
赛时60,赛后写一遍成10了[T-T]
1286053
Nostopathy楼主2024/11/26 20:08
#include<bits/stdc++.h>
using namespace std;
#define int long long
inline int read()
{
    int x=0,F=1;
    char ch=getchar();
    while(ch<'0'||ch>'9')
    {
        if(ch=='-')
            F=-1;
        ch=getchar();
    }
    while(ch>='0' && ch<='9')
        x=x*10+ch-'0',ch=getchar();
    return x*F;
}
void write(int x)
{
    if(x<0)
        putchar('-'),x=-x;
    if(x>9)
        write(x/10);
    putchar(x%10+'0');
    return;
}
const int N=1E3;
int sticks[N+5]={6, 2, 5, 5, 4, 5, 6, 3, 7, 6}, pre[N+5];
void work(int n)
{
	if(n==1)
	{
		write(-1), putchar(10);
		return;
	}
	write(pre[n]);
	while(n>7*3)
	{
		n-=7, write(8);
	}
	putchar(10);
}
signed main(){
	//天才CuteQiQi
	for(int i=1; i<N; ++i)
	{
		if(i>9)
		{
			sticks[i]=sticks[i/10]+sticks[i%10];
		}
		if(not pre[sticks[i]])
		{
			pre[sticks[i]]=i;
		}
	}
	for(int t=read(); t; --t)
	{
		work(read());
	}
	return 0;
}


2024/11/26 20:08
加载中...