Rank
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4160 Accepted Submission(s): 1616
Problem Description Jackson wants to know his rank in the class. The professor has posted a list of student numbers and marks. Compute Jackson’s rank in class; that is, if he has the top mark(or is tied for the top mark) his rank is 1; if he has the second best mark(or is tied) his rank is 2, and so on.
Output For each test case, output a line giving Jackson’s rank in the class.
Sample Input
20070101 20070102 100 20070101 33 20070103 22 20070106 33 0 0
Sample Output
2
Source 2007省赛集训队练习赛(2) 第一次错是因为 只默认假定有可能两个人成绩相同。所以在排好序的分数中搜索那个孩子分数的时候,出现多次输出名次。其实找到后就应该break;那么不用测试肯定ac了 。
#include#include using namespace std; struct person { int n; int b; }per[1011]; bool cmp(person a,person c) { return a.b>c.b; } int main() { int x,i=0; while(cin>>x) { i=0; while(cin>>per[i].n>>per[i].b,per[i].n+per[i].b) {i++;} sort(per,per+i,cmp); int M; for(int j=0;j