?
# | Author | Problem | Lang | Verdict | Time | Memory | Sent | Judged | |
---|---|---|---|---|---|---|---|---|---|
188181385 |
Practice: DaiRuiChen007 |
1567D - 44 | C++14 (GCC 6-32) | Accepted | 15 ms | 156 KB | 2023-01-06 10:47:52 | 2023-01-06 10:47:52 |
// LUOGU_RID: 98828632 #include<bits/stdc++.h> using namespace std; int n,b[]={1,10,100,1000,10000,100000,1000000,10000000,100000000,1000000000}; inline void print(vector <int> vec) { vector <int> ans(n); for(int i=0;i<n;++i) ans[i]=b[vec[i]]; for(int i=n;i<(int)vec.size();++i) { for(int j=0;j<n;++j) { if((ans[j]/b[vec[i]])%10!=9) { ans[j]+=b[vec[i]]; break; } } } for(int i:ans) printf("%d ",i); puts(""); return ; } inline void solve() { vector <int> ans; string sum; cin>>sum>>n; int k=sum.size(); for(int i=0;i<k;++i) { for(int j='1';j<=sum[i];++j) { ans.push_back(k-i-1); } } while((int)ans.size()<n) { sort(ans.begin(),ans.end()); for(int i=0;i<(int)ans.size();++i) { if(ans[i]>0) { --ans[i]; for(int j=1;j<=9;++j) ans.push_back(ans[i]); break; } } } print(ans); } signed main() { int T; cin>>T; while(T--) solve(); return 0; }
?
?
?
?