#include<bits/stdc++.h>
#define int long long
using namespace std;
int cnt;
struct node{
int num,sum,in;
}a[1010];
bool cmp(node c,node b){
if(c.sum==b.sum) return c.in<b.in;
return c.sum>b.sum;
}
main(){
int n,m;
cin >>n>>m;
for(int i=0;i<n;i++){
int x,flag=1;
cin >>x;
for(int j=0;j<cnt;j++){
if(a[j].num==x){
a[j].sum++,flag=0;
break;
}
}
if(flag) a[cnt].num=x,a[cnt].sum=1,a[cnt++].in=i+1;
}
sort(a,a+m,cmp);
for(int i=0;i<n;i++) for(int j=0;j<a[i].sum;j++) cout <<a[i].num<<" ";
return 0;
}
数组开大了确实会分高一点,但还是AC不了
看来看去也找不到是哪里越界了