#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int mod=1e9+7;
const int N=1e5+10;
struct node
{
string x;
int sum;
} a[N];
int cmp(node a,node b)
{
if(a.sum==b.sum)
{
return a.x<b.x;
}
return a.sum>b.sum;
}
int n,m,g;
int main()
{
while(cin>>n,n)
{
int k[N];
cin>>m>>g;
int ans=0;
for(int i=1; i<=m; i++)
{
cin>>k[i];
}
for(int i=0; i<n; i++)
{
int t;
cin>>a[i].x>>t;
int sum=0;
while(t--)
{
int x;
cin>>x;
sum+=k[x];
}
a[i].sum=sum;
if(sum>=g)
ans++;
}
sort(a,a+n,cmp);
cout<<ans<<endl;
for(int i=0; i<n; i++)
{
if(a[i].sum>=g)
{
cout<<a[i].x<<" "<<a[i].sum<<endl;
}
}
}
return 0;
}
pipioj 1037: 排名
最新推荐文章于 2024-10-24 10:53:42 发布
该博客主要展示了如何用C++处理数组数据,包括读取输入、计算元素总和、比较函数的实现以及对结构体数组的排序。在示例中,程序根据给定条件对字符串和其对应总和进行排序,并输出满足特定条件的元素及其总和。内容涉及到数据结构、排序算法和条件判断等编程基础概念。
摘要由CSDN通过智能技术生成