Основное
 
 
Отправитель Задача Язык Вердикт Время Память Отослано Протест.  
188181385 Дорешивание:
DaiRuiChen007
1567D - 44 C++14 (GCC 6-32) Полное решение 15 мс 156 КБ 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;
}
?
Время: ? ms, память: ? КБ
Вердикт: ?
Ввод
?
Вывод участника
?
Ответ жюри
?
Комментарий чекера
?
Диагностика
?
Показать детали тестирования