#include <stdio.h>
#include <stdlib.h>

typedef struct{
    int n;
    int m;
    int d;
}Data;

int compare(const void * a, const void * b){
    Data *A = (Data *)a;
    Data *B = (Data *)b;

    if(A->m != B->m){
        return (B->m - A->m);
    }else if(A->m == B->m){
        return (B->d - A->d);
    }else
        return (A->n - B->n);
}

int main(void){
    int n, i;
    scanf("%d", &n);

    Data arr[n];

    for(i=0; i<n; i++){
        arr[i].n=(i+1);
    }
    
    for(i=0; i<n; i++){
        scanf("%d %d", &arr[i].m, &arr[i].d);
    }

    qsort(arr, n, sizeof(Data), compare);

    for(i=0; i<n; i++){
        printf("%d %d %d\n", arr[i].n, arr[i].m, arr[i].d);
    }
    return 0;
}

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: