#include<stdio.h>
#include<stdlib.h>
typedef struct
{
int h;
int l;
int r;
int i;
}q;
int compare(const void* x, const void* y)
{
return ((q*)y)->h - ((q*)x)->h;
}
int main()
{
q arr[10001] = { 0 };
int n;
scanf("%d", &n);
for (int i = 0; i < n; i++)
{
scanf("%d%d%d", &arr[i].h, &arr[i].l, &arr[i].r);
arr[i].i = i + 1;
}
qsort(arr, n, sizeof(q), compare);
for (int i = 0; i < n; i++)
{
int t = 0;
while (arr[t].i != i+1) t++;
int k = t + 1;
while ((arr[k].l >= arr[t].l||arr[t].l>=arr[k].r)&&k<n) k++;
int l = t + 1;
while ((arr[l].r <= arr[t].r || arr[t].r <= arr[l].l)&&l<n)l++;
printf("%d %d", arr[k].i, arr[l].i);
if(i!=n-1) printf("\n");
}
return 0;
}
为什么 vs上跑就是正确的 洛谷上跑就错了捏