Submission #2381055


Source Code Expand

import java.math.BigDecimal;
import java.math.MathContext;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;



public class Main {
	public static void main(String[] args) {

		Scanner scanner = new Scanner(System.in);

		int n = scanner.nextInt();

		List<Ten> data = new ArrayList<Ten>();

		BigDecimal bufx=new BigDecimal("1");
		BigDecimal bufy=new BigDecimal("1");

		for (int i = 0; i < n; i++) {

			bufx=BigDecimal.valueOf(scanner.nextInt());
			bufy=BigDecimal.valueOf(scanner.nextInt());

			data.add(new Ten(bufx,bufy));
		}

		BigDecimal max=new BigDecimal("-1");

		BigDecimal bufdistance=new BigDecimal("1");

		for(int i=0;i<n;i++) {


				for(int j=0;j<n;j++) {

					if(i==j) {
						continue;
					}

					bufdistance=getDistance(data.get(i), data.get(j));

					if(max.compareTo(bufdistance)<0) {

						max=bufdistance;

					}
				}

		}

		System.out.println(max);

		scanner.close();

	}

	public static BigDecimal getDistance(Ten p1, Ten p2) {

		BigDecimal d1 = new BigDecimal("1");
		BigDecimal d2 = new BigDecimal("1");

		BigDecimal result = new BigDecimal("1");

		d1 = diffx(p1, p2).pow(2);
		d2 = diffy(p1, p2).pow(2);

		result = d1.add(d2);

		return sqrt(result, 30);
	}

	public static BigDecimal diffx(Ten p1, Ten p2) {
		BigDecimal result = new BigDecimal("1");

		result = p1.getX().subtract(p2.getX()).abs();
		return result;
	}

	public static BigDecimal diffy(Ten p1, Ten p2) {
		BigDecimal result = new BigDecimal("1");

		result = p1.getY().subtract(p2.getY()).abs();

		return result;
	}

	 public static BigDecimal sqrt(BigDecimal a, int scale){
	        //とりあえずdoubleのsqrtを求める
	        BigDecimal x = new BigDecimal(
	                Math.sqrt(a.doubleValue()), MathContext.DECIMAL64);
	        if(scale < 17) return x;

	        BigDecimal b2 = new BigDecimal(2);
	        for(int tempScale = 16; tempScale < scale; tempScale *= 2){
	            //x = x - (x * x - a) / (2 * x);
	            x = x.subtract(
	                    x.multiply(x).subtract(a).divide(
	                    x.multiply(b2), scale, BigDecimal.ROUND_HALF_EVEN));
	        }
	        return x;
	    }
}

 class Ten {

	private BigDecimal x;
	private BigDecimal y;
	/**
	 * @return x
	 */
	public BigDecimal getX() {
		return x;
	}
	/**
	 * @return y
	 */
	public BigDecimal getY() {
		return y;
	}
	/**
	 * @param x セットする x
	 */
	public void setX(BigDecimal x) {
		this.x = x;
	}
	/**
	 * @param y セットする y
	 */
	public void setY(BigDecimal y) {
		this.y = y;
	}
	public Ten(BigDecimal x, BigDecimal y) {
		super();
		this.x = x;
		this.y = y;
	}




}

Submission Info

Submission Time
Task A - 2点間距離の最大値 ( The longest distance )
User poporo
Language Java8 (OpenJDK 1.8.0)
Score 100
Code Size 2780 Byte
Status AC
Exec Time 328 ms
Memory 45372 KB

Judge Result

Set Name All
Score / Max Score 100 / 100
Status
AC × 26
Set Name Test Cases
All 00_max.txt, 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt, 00_sample_04.txt, 00_sample_05.txt, 01_rnd_00.txt, 01_rnd_01.txt, 01_rnd_02.txt, 01_rnd_03.txt, 01_rnd_04.txt, 01_rnd_05.txt, 01_rnd_06.txt, 01_rnd_07.txt, 01_rnd_08.txt, 01_rnd_09.txt, 01_rnd_10.txt, 01_rnd_11.txt, 01_rnd_12.txt, 01_rnd_13.txt, 01_rnd_14.txt, 01_rnd_15.txt, 01_rnd_16.txt, 01_rnd_17.txt, 01_rnd_18.txt, 01_rnd_19.txt
Case Name Status Exec Time Memory
00_max.txt AC 99 ms 19024 KB
00_sample_01.txt AC 97 ms 20820 KB
00_sample_02.txt AC 116 ms 22228 KB
00_sample_03.txt AC 99 ms 21844 KB
00_sample_04.txt AC 98 ms 19796 KB
00_sample_05.txt AC 99 ms 18892 KB
01_rnd_00.txt AC 306 ms 42620 KB
01_rnd_01.txt AC 314 ms 43160 KB
01_rnd_02.txt AC 313 ms 44604 KB
01_rnd_03.txt AC 307 ms 43256 KB
01_rnd_04.txt AC 304 ms 41276 KB
01_rnd_05.txt AC 306 ms 43208 KB
01_rnd_06.txt AC 307 ms 42428 KB
01_rnd_07.txt AC 305 ms 43068 KB
01_rnd_08.txt AC 306 ms 44860 KB
01_rnd_09.txt AC 311 ms 43208 KB
01_rnd_10.txt AC 298 ms 41208 KB
01_rnd_11.txt AC 304 ms 41664 KB
01_rnd_12.txt AC 308 ms 42444 KB
01_rnd_13.txt AC 305 ms 45372 KB
01_rnd_14.txt AC 315 ms 41420 KB
01_rnd_15.txt AC 313 ms 43296 KB
01_rnd_16.txt AC 328 ms 44056 KB
01_rnd_17.txt AC 304 ms 42876 KB
01_rnd_18.txt AC 314 ms 41032 KB
01_rnd_19.txt AC 317 ms 42620 KB