예 :
입력 :
1
4
0 1
-1 0
1 0
0 -1
출력 : -19990000001 -999 000 001
질문의 의미 일련의 점을 소정의면에, (X1, Y1)를 찾기 위해, (X2 , Y2)은 두 개의 직선에 의해 포인트와 동수로 평면은 두 부분을 포함하는 분할 표시되는 직선이 어떤 지점을 통과 할 수없는 .
아이디어 :
1 #include<bits/stdc++.h> 2 using namespace std; 3 struct node 4 { 5 int x,y; 6 }; 7 bool cmp(node p,node q) 8 { 9 if(p.x==q.x)return p.y<q.y; 10 else return p.x<q.x; 11 } 12 node a[1020],b[1020]; 13 int main() 14 { 15 int T,n; 16 scanf("%d",&T); 17 while(T--) 18 { 19 scanf("%d",&n); 20 for(int i=1; i<=n; i++) 21 { 22 scanf("%d%d",&a[i].x,&a[i].y); 23 } 24 sort(a+1,a+n+1,cmp);//直接对所有的线从左到右排序 25 printf("%d %d %d %d\n",a[n/2].x+1,a[n/2].y-999000000,a[n/2+1].x-1,a[n/2+1].y+999000000); 26 } 27 return 0; 28 }