题解:P15063 [UOI 2024 II Stage] Creating an Array
Zxc1234567 · · 题解
题目难理解,通过梳理可知:
给定
思路:
首先统计每个数的个数,再进行降序排列,最大位在前,最小位在后,最后输出排列后的数组即可
AC Code
# include <bits/stdc++.h>
using namespace std;
bool cmp1(int x,int y) {
return 10*x+y>10*y+x;//比较
}
int a[501];
int main() {
int x,ans=0;
for(int i=1;i<=10;i++){
cin>>x;
for(int j=1;j<=x;j++) a[ans++]=i-1;//注意i要减一,不然WA
}
sort(a,a+ans,cmp1);//排序
for(int i=0;i<ans;i++) cout<<a[i]<<' ';//输出
return 0;
}