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 |
|
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 |