题目简介
链接题目比较简短其实还是很好读懂的,就是给你一个数字找一下最小一个数字数位和等于这个数字并且这个数字还没有重复。
分析
可以看到数据量很小,所以就没有怎么思考。直接打个表交了。
#include <iostream>
#include<algorithm>
using namespace std;
#define ll long long
//ll ans=1e18;
//void dfs(int vis[],int cur,ll curAns){
// if(cur==0){
// ans=min(ans,curAns);
// return;
// }
// if(cur<0){
// return;
// }
// for(int i=0;i<=9;i++){
// if(vis[i])continue;
// vis[i]=1;
// dfs(vis,cur-i,curAns*10+i);
// vis[i]=0;
// }
//}
int a[50]={0,1,2,3,4,5,6,7,8,9,19,29,39,49,59,69,79,89,189,289,389,489,589,689,789,1789,2789,3789,4789,5789,6789,16789,26789,36789,46789,56789,156789,256789,356789,456789,1456789,2456789,3456789,13456789,23456789,123456789};
int main() {
int t;cin>>t;
while(t--){
int x;cin>>x;
if(x<=45){
cout<<a[x]<<endl;
}else{
puts("-1");
}
}
}