public long minArea(int[] x, int[] y) {
		long minArea = Long.MAX_VALUE;
		for (int i = 0; i < y.length; i++) {
			for (int j = i + 1; j < y.length; j++) {
				long minX, minY, maxX, maxY;
				minX = minY = Long.MAX_VALUE;
				maxX = maxY = Long.MIN_VALUE;
				for (int k = 0; k < y.length; k++) {
					if (k == i || k == j)
						continue;
					minX = Math.min(minX, x[k]);
					minY = Math.min(minY, y[k]);
					maxX = Math.max(maxX, x[k]);
					maxY = Math.max(maxY, y[k]);
				}
				long maxLen = Math.max(2 + (maxX - minX), (2 + (maxY - minY)));
				long area = maxLen * maxLen;
				minArea = Math.min(area, minArea);
			}
		}
		return minArea;
	}