开个桶进行统计,老套路了。
const int N=10010;
struct Node
{
int id;
int cnt;
int money;
bool operator<(const Node &W) const
{
if(money != W.money) return money > W.money;
if(cnt != W.cnt) return cnt > W.cnt;
return id < W.id;
}
}a[N];
int n;
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
a[i].id=i;
int k;
cin>>k;
while(k--)
{
int x,v;
cin>>x>>v;
a[x].money+=v;
a[x].cnt++;
a[i].money-=v;
}
}
sort(a+1,a+n+1);
for(int i=1;i<=n;i++)
printf("%d %.2f
",a[i].id,a[i].money/100.0);
//system("pause");
return 0;
}