用一个结构体存放小方块的坐标,简化下落的过程比较,找到最终位置后,将相应位置置一
using namespace std;
#include<bits/stdc++.h>
int main(){
int n,i,j,p;
int a[1001],b[1001],arr[1001]={0};
cin>>n;
for(i=0;i<n;i++){
cin>>p;
arr[p]++;
}
int cnt=0;
for(i=0;i<1001;i++){
if(arr[i]!=0){
a[cnt]=i;
b[cnt]=arr[i];
cnt++;
}
}
for(i=0;i<cnt-1;i++){
for(j=i+1;j<cnt;j++){
if(b[j]>b[i]){
swap(b[j],b[i]);
swap(a[j],a[i]);
}
else if(b[j] == b[i] && a[j]<a[i]){
swap(b[j],b[i]);
swap(a[j],a[i]);
}
}
}
for(i=0;i<cnt;i++){
if(i != cnt-1) printf("%d %d\n",a[i],b[i]);
else printf("%d %d",a[i],b[i]);
}
return 0;
}