吴正宇 • 22天前
using namespace std; int a[100004]; typedef struct{
int da[1005];
int len;
}li; void q(int q[],int n){
li ba[10];
for(int i=0;i<10;i++){
ba[i].len=0;
}
int maxx=0,minn=1e8;
for(int i=0;i<n;i++){
if(q[i]<minn){
minn=q[i];
}
}
for(int i=0;i<n;i++){
q[i]-=minn;
if(q[i]>maxx){
maxx=q[i];
}
}
int di=1;
while(maxx>0){
for(int i=0;i<n;i++){
int k=(q[i]/di)%10;
ba[k].da[ba[k].len++]=q[i];
}
di*=10;
maxx/=10;
int id=0;
for(int i=0;i<10;i++){
for(int j=0;j<ba[i].len;j++){
q[id++]=ba[i].da[j];
}
ba[i].len=0;
}
}
for(int i=0;i<n;i++){
q[i]+=minn;
}
} int main(){
int m;
cin>>m;
for(int j=0;j<m;j++){
cin>>a[j];
}
q(a,m);
for(int j=0;j<m;j++){
cout<<a[j]<<" ";
}
cout<<"\n";
}
评论: