提交时间:2024-01-21 14:03:45

运行 ID: 120946

#include <bits/stdc++.h> using namespace std; int n; struct platf{ int l, r, h; } a[5005]; bool h[5010], l[5010], r[5010]; signed main() { scanf("%d", &n); int from_h = INT_MIN; for (int i=1; i<=n; i++) { scanf("%d%d%d", &h[i], &l[i], &r[i]); } for (int i=1; i<=n; i++) { int left=0, right=0, high=INT_MIN; for (int j=1; j<=n; j++) { if (h[i] <= h[j]) continue; if (l[j] < l[i] && h[j] > high && h[j] < h[i] && r[j] >= l[i] && l[j] <= r[i]) { left = j; high = h[j]; } } high = INT_MIN; for (int j=1; j<=n; j++) { if (h[i] <= h[j]) continue; if (r[j] > r[i] && h[j] > high && h[j] < h[i] && r[j] >= l[i] && l[j] <= r[i]) { right = j; high = h[j]; } } printf("%d %d\n", left, right); } return 0; }