最终排名
Time Limit:?1000MS?Memory Limit:?65536KB
Submit?Statistic
Problem Description
第四屆山東理工大學ACM網絡編程擂臺賽比賽完后需要產生一個最終排名,排名按照題數多少來決定。但是有太多的隊伍參與,手動計算排名已經不能滿足比賽的需求?,F在有一份名單記錄各個隊伍的ID和做出的題目數,需要你寫一個程序,產生最終的排名。 為了簡化題目,這里的排名規則為:做出題目數量多的隊伍排在前面,如果題數相等,保持輸入時的相對順序不要改變。Input
第一行包含一個正整數T( 1?≤?T?≤?15),表示有T組測試數據。每組數據第一行有一個正整數N(1?< ?N?≤?10000),表示隊伍數量。接下來N 行包含兩個整數,1?≤?ID?≤?10^7, 0?≤?M?≤?100。ID為隊伍的編號,M為做出的題數。
Output
每組數據輸出包含N行,第i行有兩個整數,ID和M表示排在第i位的隊伍的ID和做出的題數。
Example Input
1 8 1 2 16 3 11 2 20 3 3 5 26 4 7 1 22 4Example Output
3 5 26 4 22 4 16 3 20 3 1 2 11 2 7 1 #include <stdio.h> #include <stdlib.h> struct node {int id;int m; }p[10001],h; int main() {int t,i,j,k,n;scanf("%d",&t);for(i=1;i<=t;i++){scanf("%d",&n);for(j=0;j<n;j++){scanf("%d %d",&p[j].id,&p[j].m);}for(j=0;j<n-1;j++)for(k=0;k<n-j-1;k++){if(p[k].m<p[k+1].m){h=p[k];p[k]=p[k+1];p[k+1]=h;}}for(j=0;j<n;j++)printf("%d %d\n",p[j].id,p[j].m);}return 0; }總結
- 上一篇: java 获取插入数据的自增长id
- 下一篇: 博弈之威佐夫