平面割线平分点(构造)--牛客第三场-- Magic Line

题意:

给你n个点的坐标,让你给出两个点,这两个点的连线可以平分这些点。

思路:

先按y的大小排序,在按x的小排序,再搞一下就行了。如下图:

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 struct poi{
 4           int x;
 5           int y;
 6 }p[1005];
 7 bool cmp(struct poi a,struct poi b)
 8 {
 9           if(a.y==b.y)
10                     return a.x<b.x;
11           else
12                     return a.y>b.y;
13 }
14 int main()
15 {
16           int t;
17           cin >> t;
18           while(t--)
19           {
20                     int n;
21                     scanf("%d",&n);
22                     for(int i=1;i<=n;i++)
23                     {
24                               scanf("%d%d",&p[i].x,&p[i].y);
25                     }
26                     sort(p+1,p+1+n,cmp);
27                     printf("%d %d %d %d\n",2005+p[n/2].x,p[n/2].y+1,-2004+p[n/2].x,p[n/2].y-1);
28           }
29           return 0;
30 }

 

转载于:https://www.cnblogs.com/--HPY-7m/p/11437002.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值