杭电OJ——1173 采矿(水题)
发布时间: 2013-01-23 10:44:50 作者: rapoo
杭电OJ——1173 采矿(水题)
41.0 1.03.0 1.03.0 3.01.0 3.00
2.00 2.00
//在这里提示一下思路吧!//假设所有的矿点都建在一条线上,那么我们很容易知道,如果将坐标值最大的矿点和最小的矿点连在一起//那么,这条线上的每一个点到所有矿点距离之和都最小//这道题目只是两条线而已,是上面的一个推广!下面的求中间的值是一种方法,显然,这道题目不止一种解法//如果我们将xy轴上的最大值最小值都连起来,形成一个矩形,那么矩形里面所有的值都满足题意!#include<iostream>#include<algorithm>using namespace std;#define MAX 1000010double arrx[MAX],arry[MAX];bool cmp(double a,double b){return a<b;}int main(){ int i,j,num; //memset(arrx,0,sizeof(arrx)); //memset(arry,0,sizeof(arry)); while(cin>>num && num!=0) { for(i=0;i<num;i++) scanf("%lf%lf",&arrx[i],&arry[i]); sort(arrx,arrx+num,cmp); sort(arry,arry+num,cmp); printf("%.2f %.2f\n",arrx[(num-1)/2],arry[(num-1)/2]); } // system("pause"); return 0;}