题解:P15063 [UOI 2024 II Stage] Creating an Array
题目大意
给定
思路
两个数字
代码
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
// 自定义排序规则:x拼接y 大于 y拼接x 则x在前
bool cmp(int x, int y) {
return 10 * x + y > 10 * y + x;
}
int main() {
int c[10];
vector<int> nums;
// 读取0-9每个数字的出现次数
for (int i = 0; i < 10; ++i) {
cin >> c[i];
// 按次数生成数字数组
for (int j = 0; j < c[i]; ++j) {
nums.push_back(i);
}
}
// 按自定义规则排序
sort(nums.begin(), nums.end(), cmp);
// 输出结果
for (int i = 0; i < nums.size(); ++i) {
if (i > 0) cout << " ";
cout << nums[i];
}
return 0;
}