L - Lifeguards 思维

非常喜欢这个博主的思维,太NB了 https://blog.csdn.net/qq_44555205/article/details/104870956
在这里插入图片描述

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
struct Node{
    
    
	ll x,y;
}a[100050];
bool cmp(Node a,Node b){
    
    
	if(a.x==b.x)return a.y<b.y;
	else return a.x<b.x;
}
const ll INF=1e17;
int main(){
    
    
    ll n;
    scanf("%lld",&n);
    for(ll i=0;i<n;i++)scanf("%lld %lld",&a[i].x,&a[i].y);
     sort(a,a+n,cmp);
     ll mid=n/2;
     Node t=a[mid];//取中间的,如果是偶数,那么取靠后面的,如果是奇数那么取中间的
     if(n&1){
    
    
     	printf("%lld %lld\n%lld %lld\n",t.x-INF,t.y-1,t.x+INF,t.y+1);
	 }else{
    
    
	 	printf("%lld %lld\n%lld %lld\n",t.x-INF,t.y-1,t.x+INF,t.y);
	 }
	return 0;
}

我自己加了两条线,更好理解

在这里插入图片描述
这两条线的斜率非常大,这也就保证了不会穿过两个点 orz

猜你喜欢

转载自blog.csdn.net/YingShen_xyz/article/details/117038081
l