結果

問題 No.94 圏外です。(EASY)
ユーザー kou6839
提出日時 2014-12-10 01:24:34
言語 Java
(openjdk 23)
結果
AC  
実行時間 270 ms / 5,000 ms
コード長 1,417 bytes
コンパイル時間 2,312 ms
コンパイル使用メモリ 77,668 KB
実行使用メモリ 43,748 KB
最終ジャッジ日時 2024-06-26 07:26:08
合計ジャッジ時間 7,859 ms
ジャッジサーバーID
(参考情報)
judge1 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 22
権限があれば一括ダウンロードができます

ソースコード

diff #
プレゼンテーションモードにする

import java.math.*;
import java.util.*;
public class Main {
static int[] uni;
static int root(int a){
if(uni[a]<0) return a;
return uni[a] = root(uni[a]);
}
static boolean connect(int a,int b){
a = root(a);
b=root(b);
if(a==b) return false;
if(uni[a]>uni[b]){
a ^= b;
b^=a;
a^=b;
}
uni[a]=uni[a]+uni[b];
uni[b]=a;
return true;
}
static boolean isConnect(int a,int b){
return root(a)==root(b);
}
static int size(int a){
return -uni[a];
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] x = new int[n];
int[] y = new int[n];
uni=new int[n];
Arrays.fill(uni, -1);
if(n==0){
System.out.println(1);
return;
}
for(int i=0;i<n;i++){
x[i]=sc.nextInt();
y[i]=sc.nextInt();
}
for(int i=0;i<n-1;i++){
for(int j=i+1;j<n;j++){
if(Math.pow(x[i]-x[j], 2)+Math.pow(y[i]-y[j], 2)<=100){
connect(i,j);
}
}
}
double ans=0;
for(int i=0;i<n-1;i++){
for(int j=i+1;j<n;j++){
if(isConnect(i,j)){
ans=Math.max(ans, Math.pow(x[i]-x[j], 2)+Math.pow(y[i]-y[j], 2));
}
}
}
System.out.println(Math.sqrt(ans)+2);
}
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0