Skip to content

Instantly share code, notes, and snippets.

@linnykoleh
Last active June 14, 2023 09:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save linnykoleh/b2545bfcbcd7161af7e24a58e5ea3343 to your computer and use it in GitHub Desktop.
Save linnykoleh/b2545bfcbcd7161af7e24a58e5ea3343 to your computer and use it in GitHub Desktop.
public class TriangleWithMaximumPerimeter {
public static void main(String[] args) {
var scanner = new java.util.Scanner(System.in);
var n = scanner.nextInt();
int[][] points = new int[n][2];
for (int i = 0; i < n; i++) {
points[i][0] = scanner.nextInt();
points[i][1] = scanner.nextInt();
}
double maxPerimeter = 0;
for (int i = 0; i < n - 2; i++) {
for (int j = i + 1; j < n - 1; j++) {
for (int k = j + 1; k < n; k++) {
var perimeter = calculatePerimeter(points[i], points[j], points[k]);
maxPerimeter = Math.max(maxPerimeter, perimeter);
}
}
}
System.out.printf("%.15f%n", maxPerimeter);
}
private static double calculatePerimeter(int[] p1, int[] p2, int[] p3) {
var side1 = calculateDistanceBetweenPoints(p1, p2);
var side2 = calculateDistanceBetweenPoints(p2, p3);
var side3 = calculateDistanceBetweenPoints(p3, p1);
return side1 + side2 + side3;
}
private static double calculateDistanceBetweenPoints(int[] p1, int[] p2) {
var dx = p2[0] - p1[0];
var dy = p2[1] - p1[1];
return Math.sqrt(dx * dx + dy * dy);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment