#include <stdbool.h> #include <stdio.h> #include <stdlib.h> typedef struct student { int id; int score; } Student; // int cmp(const void* x, const void* y) { // if (((Student*)x)->score == ((Student*)y)->score) { // return ((Student*)x)->id > ((Student*)y)->id; // } else { // return ((Student*)x)->score > ((Student*)y)->score; // } // } int cmp( Student* x, Student* y) { if (x->score == y->score) { return x->id > y->id; } else { return x->score > y->score; } } int main() { Student stu[105]; int n; while (scanf("%d", &n) != EOF) { int a[105] = {0}; for (int i = 0; i < n; i++) { scanf("%d %d", &stu[i].id, &stu[i].score); } qsort(stu, n, sizeof(Student), cmp); for (int i = 0; i < n; i++) { printf("%d %d\n", stu[i].id, stu[i].score); } } return 0; }