30分求助!!!
  • 板块P1105 平台
  • 楼主verachengzi
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/9/3 20:07
  • 上次更新2023/11/2 22:49:32
查看原帖
30分求助!!!
836806
verachengzi楼主2023/9/3 20:07
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
int n;
const int N=1e5+10;
struct pingtai{
	int height;
	int l,r;
	int order;
}tai[N];
typedef pair<int,int> PII;
PII ans[N];
bool cmp(pingtai a,pingtai b)
{
	if(a.height==b.height) return a.order<b.order;
	else return a.height<b.height;
}
int main()
{
	cin>>n;
	for(int i=0;i<n;i++)
	{
		cin>>tai[i].height>>tai[i].l>>tai[i].r;
		tai[i].order=i+1;
	}
	sort(tai,tai+n,cmp);
	int ll=0,rr=0;
	for(int i=0;i<n;i++)
	{
//		cout<<tai[i].height<<" "<<tai[i].l<<" "<<tai[i].r<<endl;
		if(i==0) ans[i]={0,0};
		else
		{
			for(int j=i-1;j>=0;j--) 
			{
				if(tai[j].height<tai[i].height)
				{
					if(tai[j].l<tai[i].l&&tai[j].r>tai[i].l) ans[tai[i].order].first=tai[j].order;
					if(tai[j].l<tai[i].r&&tai[j].r>tai[i].r) ans[tai[i].order].second=tai[j].order;
					if(ans[tai[i].order].first!=0&&ans[tai[i].order].second!=0) break;
				}
				
			}
		}
	}
	
	for(int i=1;i<=n;i++) cout<<ans[i].first<<" "<<ans[i].second<<endl;
	return 0;
}
2023/9/3 20:07
加载中...