ぱーぽーの競プロ記

競技プログラミングに関することを書きます。

ARC #004 A - 2点間距離の最大値 ( The longest distance )

・概要
複数の座標(x,y)が与えられ、その中から2つの座標を結んでできる線分の長さの最大値を求める問題です。
座標の数Nは100以下です。


・解法
座標の数が多くないので、全部調べれば求めることができます。


ソースコード

#include<iostream>
#include<algorithm>
#include<string>
#include<queue>
#include<stack>
#include<map>
#include<set>
#include<vector>
#include<complex>
#include<sstream>
#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<cctype>
#include<cstring>
using namespace std;

#define REP(i, x, n) for(int i = x ; i < (int)(n) ; i++)
#define rep(i, n)    REP(i, 0, n)
#define f first
#define s second
#define mp make_pair
#define pb push_back

const int INF = (1<<29);
const double EPS = 1e-9;
const int dx[] = {1,-1,0,0};
const int dy[] = {0,0,1,-1};

double x[100],y[100];

int main(){
   int n;
   cin >> n;
   rep(i,n)cin >> x[i] >> y[i];
   
   double ans = 0;
   rep(i,n){
      REP(j,i+1,n)ans = max(ans,sqrt((x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j])));
   }
   printf("%.10f\n",ans);
   return 0;
}