最终排名
Time Limit:?1000MS?Memory Limit:?65536KB
Submit?Statistic
Problem Description
第四屆山東理工大學(xué)ACM網(wǎng)絡(luò)編程擂臺(tái)賽比賽完后需要產(chǎn)生一個(gè)最終排名,排名按照題數(shù)多少來決定。但是有太多的隊(duì)伍參與,手動(dòng)計(jì)算排名已經(jīng)不能滿足比賽的需求。現(xiàn)在有一份名單記錄各個(gè)隊(duì)伍的ID和做出的題目數(shù),需要你寫一個(gè)程序,產(chǎn)生最終的排名。 為了簡化題目,這里的排名規(guī)則為:做出題目數(shù)量多的隊(duì)伍排在前面,如果題數(shù)相等,保持輸入時(shí)的相對順序不要改變。Input
第一行包含一個(gè)正整數(shù)T( 1?≤?T?≤?15),表示有T組測試數(shù)據(jù)。每組數(shù)據(jù)第一行有一個(gè)正整數(shù)N(1?< ?N?≤?10000),表示隊(duì)伍數(shù)量。接下來N 行包含兩個(gè)整數(shù),1?≤?ID?≤?10^7, 0?≤?M?≤?100。ID為隊(duì)伍的編號(hào),M為做出的題數(shù)。
Output
每組數(shù)據(jù)輸出包含N行,第i行有兩個(gè)整數(shù),ID和M表示排在第i位的隊(duì)伍的ID和做出的題數(shù)。
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; }總結(jié)
- 上一篇: java 获取插入数据的自增长id
- 下一篇: 博弈之威佐夫