はまやんはまやんはまやん

hamayanhamayan's blog

Cheeses and a Mousetrap(チーズとネズミ捕り) [yukicoder No.521]

http://yukicoder.me/problems/no/521

解説

http://yukicoder.me/submissions/177351
まず、情報が誤っている場合(K == 0 || K > N)はどのチーズも疑わしいので食べない。
正しい情報がある場合は、食べられないチーズの候補は高々2つとなる。
候補が1つとなるのは両端から何番目かを取った時に同じチーズになる時は、候補が1つに絞られる。
これはNが奇数でceil(N/2)がKと等しいときで、この時はN-1が答え。
それ以外は、2つのチーズが食べられないので、N-2が答え。

var sc : FastScanner = FastScanner()
fun main(args: Array<String>) {
    var N = sc.nextInt()
    var K = sc.nextInt()

    if(K == 0 || K > N) println("0")
    else {
        if(N % 2 == 1 && (N + 1) / 2 == K) println((N - 1).toString())
        else println((N - 2).toString())
    }
}