没啥难的,但是写了好久,哭了o(╥﹏╥)o
#include <bits/stdc++.h>
using namespace std;
const int N = 10010;
typedef struct
{
int idx;
double money;
int cnt;
} Node;
Node node[N];
bool cmp(Node a, Node b)
{
if (fabs(a.money - b.money)<0.0001)
{
if(a.cnt==b.cnt){
return a.idx < b.idx;
}
return a.cnt > b.cnt;
}
else
{
return a.money > b.money;
}
}
int main(void)
{
int n;
cin >> n;
for (int i = 1; i <= n; i++)
{
int k;
scanf("%d", &k);
double sum = 0;
node[i].idx = i;
while (k--)
{
int a;
double b;
scanf("%d %lf", &a, &b);
node[a].money += b/100;
sum += b/100;
node[a].cnt++;
}
node[i].money -= sum;
}
sort(node + 1, node + n + 1, cmp);
for (int i = 1; i <= n; i++)
{
printf("%d %.2f\n", node[i].idx, node[i].money);
}
return 0;
}