o.O
  • 板块P1105 平台
  • 楼主fnfyu
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/11/14 21:33
  • 上次更新2023/11/15 08:08:06
查看原帖
o.O
1090526
fnfyu楼主2023/11/14 21:33
#include<stdio.h>
#include<stdlib.h>
typedef struct
{
	int h;
	int l;
	int r;
	int i;
}q;
int compare(const void* x, const void* y)
{
	return ((q*)y)->h - ((q*)x)->h;
}
int main()
{
	q arr[10001] = { 0 };
	int n;
	scanf("%d", &n);
	for (int i = 0; i < n; i++)
	{
		scanf("%d%d%d", &arr[i].h, &arr[i].l, &arr[i].r);
		arr[i].i = i + 1;
	}
	qsort(arr, n, sizeof(q), compare);
	for (int i = 0; i < n; i++)
	{
		int t = 0;
		while (arr[t].i != i+1) t++;
		int k = t + 1;
		while ((arr[k].l >= arr[t].l||arr[t].l>=arr[k].r)&&k<n) k++;
		int l = t + 1;
		while ((arr[l].r <= arr[t].r || arr[t].r <= arr[l].l)&&l<n)l++;
		printf("%d %d", arr[k].i, arr[l].i);
        if(i!=n-1) printf("\n");
	}
	return 0;
}

为什么 vs上跑就是正确的 洛谷上跑就错了捏

2023/11/14 21:33
加载中...