Home > php教程 > php手册 > 九度OnlineJudge之1014:排名

九度OnlineJudge之1014:排名

WBOY
Release: 2016-06-13 10:19:43
Original
837 people have browsed it

题目描述:                       

    今天的上机考试虽然有实时的Ranklist,但上面的排名只是根据完成的题数排序,没有考虑每题的分值,所以并不是最后的排名。给定录取分数线,请你写程序找出最后通过分数线的考生,并将他们的成绩按降序打印。

输入:                       

    测试输入包含若干场考试的信息。每场考试信息的第1行给出考生人数N ( 0

    当读入的考生人数为0时,输入结束,该场考试不予处理。

输出:                       

    对每场考试,首先在第1行输出不低于分数线的考生人数n,随后n行按分数从高到低输出上线考生的考号与分数,其间用1空格分隔。若有多名考生分数相同,则按他们考号的升序输出。

样例输入:                       

4 5 25

10 10 12 13 15

CS004 3 5 1 3

CS003 5 2 4 1 3 5

CS002 2 1 2

CS001 3 2 3 5

1 2 40

10 30

CS001 1 2

2 3 20

10 10 10

CS000000000000000001 0

CS000000000000000002 2 1 2

0

样例输出:                       

3

CS003 60

CS001 37

CS004 37

0

1

CS000000000000000002 20

 

#include <iostream>  
#include <string>  
#include <vector>  
#include <algorithm>  
#include <cstring>  
  
using namespace std;  
  
  
typedef struct  persons  
{  
    string id;  
    int total;  
    int grade;  
}persons;  
  
bool  compare(persons a,persons b)  
{  
    if (a.grade!=b.grade)  
    return a.grade>b.grade;  
    else  
    return a.id < b.id;  
}  
  
  
int main()  
{  
    int N,M,G;  
  
    vector<persons>   vec;  
      
    int grade[11];  
  
      
  
    while(cin>>N,N!=0)  
    {  
        memset(grade,0,sizeof(grade));  
        vec.clear();  
        int ans=0;  
        cin>>M>>G;  
          
        for (int i=1;i<=M;i++)  
            cin>>grade[i];  
        for (int i=0;i<N;i++)  
        {  
            persons  p;  
            cin>>p.id>>p.total;  
            p.grade = 0;  
            for (int j=1;j<=p.total;j++)  
            {  
                int t;  
                cin>>t;  
                p.grade += grade[t];  
  
            }  
  
            if (p.grade >= G) ++ans;  
  
            vec.push_back(p);  
        }  
     sort(vec.begin(),vec.end(),compare);  
     cout<<ans<<endl;  
     for (int i=0;i<ans;++i)  
     {  
         cout<<vec[i].id<<" "<<vec[i].grade<<endl;  
  
     }  
  
  
  
  
    }  
  
  
  
  
    //system("pause");  
    return 0;  
}  
Copy after login

 

 

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template