关于一个蒟蒻与众不同的T1做法
  • 板块灌水区
  • 楼主fjy000
  • 当前回复11
  • 已保存回复11
  • 发布时间2023/4/1 14:45
  • 上次更新2023/10/23 19:48:12
查看原帖
关于一个蒟蒻与众不同的T1做法
555158
fjy000楼主2023/4/1 14:45
#include<bits/stdc++.h>
using namespace std;
const int MAXN=2e5+5;
struct xian
{
	int l,r;
}a[MAXN];
int ha[MAXN];
int n,m,x;
int tou=1,wei=MAXN;	
bool cmp(xian p,xian q)
{
	if (p.l==q.l)	return p.r<q.r;
	return p.l<q.l;
}
void print();
int main()
{
	freopen("station.in","r",stdin);
	freopen("station.out","w",stdout);
	scanf("%d%d%d",&n,&m,&x);
	wei=n;
	for (int i=1;i<=m;i++)
	{
		scanf("%d%d",&a[i].l,&a[i].r);
	}
	sort(a+1,a+1+m,cmp);
	int fi=-1;
	for (int i=1;i<=m;i++)
	{
		if (i==1)
		{
			if (a[i].r<=x)
			{
				fi=a[i].r;
				ha[a[i].l]=1;
			}
			else if (a[i].r>x&&a[i].l<=x)
			{
				fi=a[i].r;
				ha[a[i].l]=ha[a[i].r]=1;
			}
			else						
			{
				break;
			}
		}
		else
		{
			if (a[i].r<=x)			
			{
				if (a[i].l>fi){tou=a[i].l;fi=a[i].r;ha[a[i].l]=1;}
				else
				{
					fi=max(fi,a[i].r);
					ha[a[i].l]=1;
				}
			}
			else if (a[i].r>x&&a[i].l<=x)
			{
				if (a[i].l>fi){tou=a[i].l;fi=a[i].r;ha[a[i].l]=ha[a[i].r]=1;}
				else
				{
					fi=max(fi,a[i].r);
					ha[a[i].l]=ha[a[i].r]=1;
				}
			}
			else					
			{
				if (a[i].l>fi){wei=a[i].l;break;}
				fi=max(fi,a[i].r);
				ha[a[i].r]=1;
			}
		}
	}
	print();
	fclose(stdin);
	fclose(stdout);
	return 0;
 }
void print()
{
	for (int i=tou;i<=wei;i++)
	{
		if (i!=x&&ha[i])
			printf("%d ",i);
	}
	return;
}
2023/4/1 14:45
加载中...