BOJ 3693 컨테이너

BOJ 3693 컨테이너

문제 링크:

문제 내용

지면에 컨테이너를 놓으려고 합니다. 컨테이너의 크기는 가로 40, 세로 10입니다. 컨테이너는 한 자리에 최대 5개까지 쌓을 수 있고, 서로 다른 자리에 있는 컨테이너끼리는 그림과 같이 평행하게 놓여져야 합니다.

각 컨테이너가 놓인 위치의 주변에는 짧은 변 쪽으로 2, 긴 변 쪽으로 4의 여유 공간이 있어야 합니다. 이때 여유 공간을 포함하여 nn개의 컨테이너를 놓을 수 있는 가장 작은 공간의 면적을 구하세요.

입력

첫 줄에는 테스트 케이스의 개수 TT가 주어집니다. (1T1001 \le T \le 100)

각 테스트 케이스에 대해, 컨테이너의 개수 nn이 한 줄에 주어집니다. (1n10121 \le n \le 10^{12})

출력

각각의 nn에 대해, 면적이 가장 작은 영역을 구하여 (긴 변의 길이) X (짧은 변의 길이) = (면적)의 형식으로 출력합니다. 면적이 가장 작은 영역이 여러 가지라면 긴 변의 길이가 가장 짧은 것을 출력합니다.

문제 풀이

스포일러

필요한 컨테이너 자리의 개수는 k=n5k = \lceil \frac{n}{5} \rceil입니다. 이들을 가로로 xx줄, 세로로 yy줄이 되게 배열하는 방법을 모두 고려해야 합니다.

xx를 고정하면 y=kxy = \lceil \frac{k}{x} \rceil로 계산할 수 있습니다. x106x \ge 10^6이면 y106y \le 10^6이므로 반대로 yy를 고정하여 xx를 구할 수 있습니다. 따라서 xx에 1부터 10610^6까지 대입해 보고, yy에 1부터 10610^6까지 대입해 보는 방법을 사용할 수 있습니다. 나눗셈이 무거운 연산이지만 의외로 250ms 정도에 돌아갑니다.

Last updated on