201503-2-數字排序-CCF
阿新 • • 發佈:2018-11-14
題目:http://118.190.20.162/view.page?gpid=T26
解題思路:先用一個數組vs[N],i表示值,vs[i]表示次數,再放入結構體陣列中,用sort排序解決。
#include<iostream> #include<cstdio> #include<algorithm> using namespace std; const int N=1005; int vs[N]={0}; struct node{ int t;//次數 int v;//值 }A[N]; bool cmp(node x,node y){ if(x.t>y.t) return true; if(x.t==y.t&&x.v<y.v)return true; return false; } int main(){ int n,s; scanf("%d",&n); for(int i=0;i<n;i++){ scanf("%d",&s); vs[s]++; } int num=0,k=0; for(int i=0;i<=1000;i++){ if(vs[i]){ A[k].v=i; A[k].t=vs[i]; k++; } num++; } sort(A,A+k,cmp); for(int i=0;i<k;i++){ printf("%d %d\n",A[i].v,A[i].t); } return 0; }