CCF 201503-2 数字排序 代码 #include<iostream> #include<stdlib.h> #include<memory.h> using namespace std; int main() { int n =0; scanf("%d",&n); int* a = (int*)malloc(sizeof(int)*n); for(int i=0;i<n;i++) { scanf("%d",&a[i]); } int** b = (int**)malloc(sizeof(int*)*1001); for(int i=0;i<1001;i++) { b[i] = (int*)malloc(sizeof(int)*1001); memset(b[i],-1,sizeof(int)*1001); } int * c = (int*)malloc(sizeof(int)*1001); memset(c,0,sizeof(int)*1001); for(int i=0;i<n;i++) { c[ a[i] ] ++; } for(int i=0;i<1001;i++) { if(c[i] == 0) continue; int j=0; while(b[c[i]][j] != -1) { j++; } b[c[i]][j] = i; } for(int i=1000;i>0;i--) { int j =0; while(b[i][j] !=-1) { cout<<b[i][j]<<" "<<i<<endl; j++; } } return 0; }