#include<iostream>
#include<algorithm>
#define MAXSIZE 10001
using namespace std;
struct Redpock {
int N_i, num_pock = 0, in;
}pock[MAXSIZE];
bool cmp (struct Redpock a, struct Redpock b) {
if ( a.in != b.in )
return a.in > b.in;
else if (a.num_pock != b.num_pock)
return a.num_pock > b.num_pock;
else
return a.N_i < b.N_i;
}
int main () {
int N;
cin >> N;
int K, N_k;
double P_k;
for (int i = 1; i <= N; ++i) {
pock[i].N_i = i;
cin >> K;
for (int j = 0; j < K; ++j) {
cin >> N_k >> P_k;
pock[N_k].in += P_k;
pock[i].in += (-1.0 * P_k);
++pock[N_k].num_pock;
}
}
sort(pock + 1, pock + N + 1, cmp);//因为是从i=1开始的,所以要pock+1开始
for (int i = 1; i <= N; ++i) {
printf ("%d %.2f\n", pock[i].N_i, pock[i].in / 100.0 );
}
return 0;
}
原文:https://www.cnblogs.com/am6a6/p/13969177.html