[백준] Do Not Touch Anything (13136)(kotlin)

원본 문제

문제 설명

ACM-ICPC 대회의 대회장은 R행 C열의 직사각형 형태로 좌석이 배치되어 있다. 대회가 시작하기 전에는 참가자들이 아무것도 만지면 안 되기 때문에 진행자는 ‘Do not touch ANYTHING!!!’을 연신 외친다.

하지만, 진행자가 성대결절에 걸리면서 ‘Do not touch ANYTHING!!!’을 외칠 수 없는 처지가 되었다. 따라서 주최측은 CCTV를 설치하여 참가자들을 감시하려고 한다. 이때, 각 CCTV는 N행 N열의 직사각형 영역의 좌석을 촬영할 수 있다.

모든 좌석을 전부 촬영하도록 CCTV를 배치할 때, 최소 몇 개의 CCTV가 필요할까?

입력

첫 번째 줄에 좌석의 세로 크기, 가로 크기 R, C와 한 대의 CCTV가 수용할 수 있는 범위 N이 주어진다. (1 ≤ R, C, N ≤ 1,000,000)

출력

모든 좌석을 전부 촬영하도록 CCTV를 배치할 때, 필요한 CCTV의 최소 개수를 출력한다.

테스트 케이스

입력 출력
7 9 3 9

문제 풀이1

fun main(args: Array<String>) = println(
    readLine()!!
        .split(" ")
        .map { it.toLong() }
        .let {
            var (r, c, n) = it

            if (r % n != 0L) {
                val x = r / n + 1L
                if (c % n != 0L) {
                    x * (c / n + 1L)
                } else {
                    x * (c / n)
                }
            } else {
                val x = r / n
                if (c % n != 0L) {
                    x * (c / n + 1L)
                } else {
                    x * (c / n)
                }
            }
        }
)