70分求调
  • 板块P1105 平台
  • 楼主Eternal_SZC
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/10/13 00:42
  • 上次更新2024/10/13 11:06:28
查看原帖
70分求调
744820
Eternal_SZC楼主2024/10/13 00:42
#include<bits/stdc++.h>
using namespace std;
#define ll long long
struct node{
	int h,l,r,id,ans1,ans2;
}a[100005];
bool cmp(node a,node b){
	return a.h>b.h;
	if(a.h==b.h) return a.id<b.id;
}
template <typename TM>
void in(TM &n) {
	char c=getchar();
	int f=1;
	while ((c>'9' || c<'0') && c!='-') c=getchar();
	if(c=='-') f=-1, c=getchar();
	for(n=0; c>='0'&&c<='9'; c=getchar()) n=n*10+c-'0';
	n*=f;
}
int main(){
//	freopen("P1105_6.in","r",stdin);
//	freopen("P1105_6.ans","w",stdout);
	int n;
	in(n);
	for(int i=1;i<=n;i++){
		in(a[i].h),in(a[i].l),in(a[i].r);
		a[i].id=i;
	}
	sort(a+1,a+1+n,cmp);
	for(int i=1;i<=n;i++){
		bool f1=0,f2=0;
		for(int j=i+1;j<=n;j++){
			if(f1&&f2) continue;
			if(a[i].h>a[j].h){
				if(!f1&&a[i].l>a[j].l&&a[i].l<a[j].r){
					a[a[i].id].ans1=a[j].id;
					f1=1;
				}
				if(!f2&&a[i].r<a[j].r&&a[i].r>a[j].l){
					a[a[i].id].ans2=a[j].id;
					f2=1;
				}
			}
		}
		if(!f1) a[a[i].id].ans1=0;
		if(!f2) a[a[i].id].ans2=0;
	}
	for(int i=1;i<=n;i++){
		printf("%d %d\n",a[i].ans1,a[i].ans2);
	}
	return 0;
}

2024/10/13 00:42
加载中...