省选T1求助
  • 板块灌水区
  • 楼主G_E_E_D
  • 当前回复4
  • 已保存回复4
  • 发布时间2023/4/1 21:24
  • 上次更新2023/10/23 19:43:19
查看原帖
省选T1求助
352871
G_E_E_D楼主2023/4/1 21:24

求 Hack,只有90分,#4 WA

#include<bits/stdc++.h>
using namespace std;
void kread(int &x){
	x=0;
	int f=1;
	char c=getchar();
	while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();}
	while(c>='0'&&c<='9'){x*=10;x+=c-'0',c=getchar();}
	x*=f;
}
const int maxn=1e6;
struct edge{
	int l,r;
	bool operator < (const edge &A)const{
		return l<A.l;
	}
}b[maxn];
bool com(edge A,edge B){
	return A.l<B.l;
}
void xA(int n,int m){
	bool a[maxn];
	memset(a,false,sizeof(a));
	int l1;
	l1=1;
	for(int i=1;i<=m;i++){
		kread(b[i].l),kread(b[i].r);
	}
	sort(b+1,b+m+1,com);
	for(int i=1;i<=m;i++){
		if(b[i].l<=l1){
			a[b[i].r]=true;
			l1=max(l1,b[i].r);
		}
	}
	for(int i=2;i<=n;i++){
		if(a[i]){
			cout<<i<<' ';
		}
	}
	return;
}

void xBl(int n,int m,int x){
	bool a[maxn];
	memset(a,false,sizeof(a));
	int l1,f=x;
		for(int i=1;i<=m;i++){
		if(b[i].l<=x&&b[i].r>=x){
			f=i;
		}
	}
	l1=b[f].r;
	for(int i=f;i<=m;i++){
		if(b[i].l<=l1){
			a[b[i].r]=true;
			l1=max(l1,b[i].r);
		}
	}
	l1=b[f].l;
	for(int i=f;i>=1;i--){
		if(b[i].r>=l1){
			a[b[i].l]=true;
			l1=min(l1,b[i].l);
		}
	}
	for(int i=1;i<x;i++){
		if(a[i]){
			cout<<i<<' ';
		}
	}
}
void xBr(int n,int m,int x){
	bool a[maxn];
	memset(a,false,sizeof(a));
	int l1,f=x;
	for(int i=1;i<=m;i++){
		if(b[i].l<=x&&b[i].r>=x){
			f=i;
			break;
		}
	}
	l1=b[f].r;
	for(int i=f;i<=m;i++){
		if(b[i].l<=l1){
			a[b[i].r]=true;
			l1=max(l1,b[i].r);
		}
	}
	l1=b[f].l;
	for(int i=f;i>=1;i--){
		if(b[i].r>=l1){
			a[b[i].l]=true;
			l1=min(l1,b[i].l);
		}
	}
	for(int i=x+1;i<=n;i++){
		if(a[i]){
			cout<<i<<' ';
		}
	}
}
void xB(int n,int m,int x){
	for(int i=1;i<=m;i++){
		kread(b[i].l),kread(b[i].r);
	}
	sort(b+1,b+m+1,com);
	xBl(n,m,x);
	xBr(n,m,x);
	return;
}
int main(){
	//freopen("station.in","r",stdin);
	//freopen("station.out","w",stdout);
	int n,m,x;
	kread(n),kread(m),kread(x);
	if(x==1){
		xA(n,m);
		return 0;	
	}
	else{
		xB(n,m,x);
	}
	return 0;
}
2023/4/1 21:24
加载中...