online_judge_1014

来源:互联网 发布:泗阳网络问政12345 编辑:程序博客网 时间:2024/06/05 09:22
#include <iostream>#include <string>#include <algorithm>using namespace std;struct People{    string name;    int cnt;    int score;    bool operator < (const People &A) const    {        return (score < A.score || (score == A.score && name > A.name));    }}p[1001];int number[11];int main(){    int n,m,g;    int i,j,t,cut;    while(cin>>n)    {        if(n == 0)            break;        cin>>m>>g;        cut = 0;        for(i=1; i<=m; ++i)            cin>>number[i];        for(i=0;i<n;++i)        {            cin>>p[i].name>>p[i].cnt;            p[i].score = 0;            for(j=0;j<p[i].cnt;++j)            {                cin>>t;                p[i].score += number[t];            }            if(g <= p[i].score)                cut++;        }        sort(p, p+n);        cout<<cut<<endl;        for(i=n-1; i>=0; --i)        {            if(cut == 0)                break;            cout<<p[i].name<<" "<<p[i].score<<endl;            cut--;        }    }    return 0;}


这个题目要小心,我是根据题意反向排序,然后反向输出的……

0 0