求助
  • 板块P1105 平台
  • 楼主zhjzhmh
  • 当前回复1
  • 已保存回复1
  • 发布时间2020/6/7 10:18
  • 上次更新2023/11/7 01:03:41
查看原帖
求助
233815
zhjzhmh楼主2020/6/7 10:18
#include<bits/stdc++.h>
#define s(x) scanf("%d",&x);
#define p(x) printf("%d",x);
#define c cout<<endl;
#define d cout<<" ";
using namespace std;
int MIN,bo,n,p[1010][5];
struct node
{
	int h,l,r,xh;
}a[1010];
void qsort(int l,int r)
{
	int i=l,j=r,mid=a[(l+r)/2].h;
	while(i<=j)
	{
		while(a[i].h<mid) i++;
		while(mid<a[j].h) j--;
		if(i<=j)
		{
			swap(a[i],a[j]);
			i++;j--;
		}
	}
	if(l<j) qsort(l,j);
	if(i<r) qsort(i,r);
}
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		s(a[i].h)s(a[i].l)s(a[i].r)a[i].xh=i;
	}
	qsort(1,n);
	for(int i=1;i<=n;i++)
	{
		MIN=n+1;
		bo=0;
		for(int j=i-1;j>=1;j--)
		{
			if(a[j].l<a[i].l&&a[j].r>a[i].l)
			{
				bo=1;
				MIN=min(MIN,a[j].xh);
			}
		}
		if(bo==1) p[a[i].xh][1]=MIN;
		MIN=n+1;
		bo=0;
		for(int j=i-1;j>=1;j--)
		{
			if(a[j].l<a[i].r&&a[j].r>a[i].r)
			{
				bo=1;
				MIN=min(MIN,a[j].xh);
			}
		}
		if(bo==1) p[a[i].xh][2]=MIN;
	} 
	for(int i=1;i<=n;i++)
	{
		cout<<p[i][1]<<" "<<p[i][2]<<endl;
	}
	return 0;
 } 
2020/6/7 10:18
加载中...