题目链接:平台 - 洛谷
2022/12/7 day3
该题比较简单,顺着思路写就好
AC代码:
#include<iostream>
#include<algorithm>
using namespace std;
struct Node
{
int l,r;
int h;
int id;
bool operator<(const Node x)const{
if(h==x.h) return id<x.id;
else return h>x.h;
}
};
struct G
{
int l,r;
int id;
bool operator<(const G x)const{
return id<x.id;
}
};
int main()
{
int n;
Node node[1005];
G ans[1005];
cin>>n;
for(int i=1;i<=n;++i)
{
cin>>node[i].h>>node[i].l>>node[i].r;
node[i].id=i;
}
sort(node+1,node+n+1);
for(int i=1;i<=n;++i)
{
int j,G_L=0,G_R=0;
for(j=i+1;j<=n;++j)
{
if(node[i].l>node[j].l&&node[i].l<node[j].r)
{
G_L=node[j].id;
break;
}
}
for(j=i+1;j<=n;++j)
{
if(node[i].r>node[j].l&&node[i].r<node[j].r)
{
G_R=node[j].id;
break;
}
}
ans[i].l=G_L;
ans[i].r=G_R;
ans[i].id=node[i].id;
}
sort(ans+1,ans+n+1);
for(int i=1;i<=n;++i)
{
cout<<ans[i].l<<" "<<ans[i].r<<endl;
}
return 0;
}