提交时间:2024-01-21 15:48:27
运行 ID: 121202
#include<bits/stdc++.h> using namespace std; struct liball{ int l,r; }a[1005]; int num[1005]; pair<int,int> res[1005]; int main(){ int n; cin>>n; int maxn = 0,minn = 1e9; for(int i=1;i<=n;i++){ int h1,l1,r1; cin>>h1>>l1>>r1; a[h1].l = l1; a[h1].r = r1; num[i] = h1; minn = min(minn,l1); maxn = max(maxn,r1); } for(int i=n;i>=1;i--){ int al,ar; bool lf = true,rf = true; if(a[i].l == minn){ al = 0; lf = false; } if(a[i].r == maxn){ ar = 0; rf = false; } int j; j = i-1; if(lf){ while(a[j].l>=a[i].l)j--; al = j; } j = i-1; if(rf){ while(a[j].r<=a[i].r)j--; ar = j; } res[i].first = al; res[i].second = ar; } for(int i=1;i<=n;i++){ cout<<res[num[i]].first<<" "<<res[num[i]].second<<endl; } return 0; }