[BOJ] 14881 - 물통 문제

[BOJ] 14881 - 물통 문제

a, b 리터인 두 물통에 물을 적절히 부어서 정확하게 c리터를 만들어야 하기 때문에, c리터는 a, b 리터를 초과할 수 없다.

(bottle[0] >= bottle[2] || bottle[1] >= bottle[2])

위의 숨겨진 조건에 주의해야 한다.

import java.util.* fun Euclidean(N: Int, M: Int): Int { var n = N var m = M if (n < m) n = m.also { m = n } while(n % m != 0) { n = m.also { m = n % m } } return m } fun main() = with(Scanner(System.`in`)) { var T = readLine()!!.toInt() while (T-- > 0) { val bottle = readLine()!!.split(" ").map { it.toInt() } if ( (bottle[0] >= bottle[2] || bottle[1] >= bottle[2]) && (bottle[2] % Euclidean(bottle[0], bottle[1]) == 0) ) println("YES") else println("NO") } }

from http://onsoim.tistory.com/146 by ccl(A) rewrite - 2021-11-07 11:28:03