閱讀67 返回首頁    go 阿裏雲 go 技術社區[雲棲]


HDU1173 采礦

采礦


Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 2146    Accepted Submission(s): 1046
Special Judge


Problem Description
某天gameboy玩魔獸RPG。有一個任務是在一個富含金礦的圓形小島上建一個基地,以最快的速度采集完這個小島上的所有金礦。這個小島上有n(0<n<1000000)個金礦,每個金礦的礦藏量是相等的。而且這個小島的地勢非常平坦,所以基地可以建在小島的任何位置,每個金礦的采礦速度隻跟礦藏到基地的路程長度有關。為了不讓這個任務太無聊,遊戲設計者對這個小島施了個“魔法”,規定礦工在小島上隻能正南正北正西正東走。也就是說礦工不能斜著在島上走。

這個小島在一個二維直角坐標係中描述。


你的任務就是幫gameboy找一個建造基地的位置,使礦工能以最快的速度采完所有礦。


Input
輸入數據有多組。每組數據的第一行是一個正整數n(0<n<1000000),表示小島上有n個金礦。在接下來的n行中,每行有兩個實數x,y,表示其中一個金礦的坐標。n=0表示輸入數據結束。
 
Output
每一組輸入數據對應一行輸出,輸出兩個實數x,y(保留小數點後兩位),也就是你找到的建造基地的位置坐標。如果坐標不唯一,可以任選一個輸出。
 
Sample Input
4
1.0 1.0
3.0 1.0
3.0 3.0
1.0 3.0
0
 
Sample Output
2.00 2.00
 
#include<stdio.h>
#include<algorithm>
using namespace std;
double a[1000010],b[1000010];
int main()
{
    int i,n;
    while(scanf("%d",&n),n!=0)
    {
       for(i=0;i<n;i++)
       {
          scanf("%lf %lf",&a[i],&b[i]);
       }
       sort(a,a+n);sort(b,b+n);
       printf("%.2lf %.2lf\n",a[n/2],b[n/2]);
    }
    return 0;
}




//一開始的想法,但是沒有AC
#include<stdio.h>
#include<algorithm>
using namespace std;
double a[1000010],b[1000010];
int main()
{
    int i,n,maxx,minx,maxy,miny;
    double awsx,awsy;
    while(scanf("%d",&n),n!=0)
    {
       for(i=0;i<n;i++)
       {
          scanf("%lf %lf",&a[i],&b[i]);
       }
       maxx=-99999999;minx=1000020;
       maxy=-99999999;miny=1000020;
       sort(a,a+n);sort(b,b+n);
       awsx=(a[0]+a[n-1])/2.0;
       awsy=(b[0]+b[n-1])/2.0;
       printf("%.2lf %.2lf\n",awsx,awsy);
    }
    return 0;
}


最後更新:2017-04-03 12:54:50

  上一篇:go 文件圖片上傳
  下一篇:go C#之簡單工廠模式與多態性