70分求调(悬关)
  • 板块P1105 平台
  • 楼主VoId_D_C
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/8/2 20:04
  • 上次更新2024/8/2 20:59:22
查看原帖
70分求调(悬关)
764785
VoId_D_C楼主2024/8/2 20:04

下数据后对了半天200多组快看瞎了发现一处错误(可能还有)

#include<iostream>
#include<algorithm> 
using namespace std;
struct s{
	int num,l,r,h;
	int lans,rans;
}q[1005];
bool cmp(s a,s b){
	return a.h>b.h;
}
bool amp(s a,s b){
	return a.num<b.num;
}
int main(){
	int n;
	cin >> n;
	for(int i=1;i<=n;i++){
		q[i].num=i;
		cin >> q[i].h >> q[i].l >> q[i].r;	
	} 
	sort(q+1,q+n+1,cmp);
	for(int i=1;i<=n;i++){
		q[i].lans=q[i].rans=0;
		for(int j=i;j<=n;j++){
			if(q[j].l<q[i].l&&q[i].l<q[j].r&&q[i].h>q[j].h){
				q[i].lans=q[j].num;
				break;
			}
		}
		for(int j=i;j<=n;j++){
			if(q[j].l<q[i].r&&q[i].r<q[j].r&&q[i].h!=q[j].h){
				q[i].rans=q[j].num;
				break;
			}
		}
	} 
	sort(q+1,q+n+1,amp);
	for(int i=1;i<=n;i++){
		cout << q[i].lans <<' '<< q[i].rans << "\n";
	}
	return 0;
} 

2024/8/2 20:04
加载中...