油井问题

xiaoxiao2021-02-28  93

主油管道为东西向,确定主油管道的南北位置,使南北向油井喷油管道和最小。要求线性时间完成。

1<= 油井数量 <=2 000 000

输入要求:

输入有油井数量行,第 K 行为第 K 油井的坐标 X ,Y 。其中, 0<=X<2^31,0<=Y<2^31 。

输出要求:

输出有一行, N 为主管道最优位置的最小值

注意:用快排做的不给分!!

测试输入

41,969978 26500,413356 11478,550396 24464,567225 23281,613747 491,766290 4827,77476 14604,597006 292,706822 18716,289610 5447,914746

测试输出

597006

源代码

#include<stdio.h> #include<stdlib.h> #include<math.h> #define MAXSIZE 2000000 unsigned int a[MAXSIZE]; int cmp(const void* a,const void* b) { return(*(unsigned long int *)a-*(unsigned long int *)b); } int main(){ unsigned int x,y; int i=0,k; while(scanf("%u,%u",&x,&y)!=EOF){ a[i++]=y; } qsort(a,i,sizeof(a[0]),cmp); if(i%2!=0){ k=i/2; printf("%u\n",a[k]); } else{ k=i/2-1; printf("%u\n",a[k]); } return 0; }

转载请注明原文地址: https://www.6miu.com/read-85888.html

最新回复(0)