import Foundation

let Nrc = readLine()!.components(separatedBy: " ").map { Int($0)! }
let N = Nrc[0]
let r = Nrc[1]
let c = Nrc[2]

var cnt = 0
// ํ•œ ๋ณ€์˜ ๊ธธ์ด
let m = 2 << (N-1)

func check(_ x: Int, _ y: Int, _ n: Int) {
    if n == 2 {
        if x == r, y == c {
            print(cnt)
            return
        }
        cnt += 1
        if x == r, y+1 == c {
            print(cnt)
            return
        }
        cnt += 1
        if x+1 == r, y == c {
            print(cnt)
            return
        }
        cnt += 1
        if x+1 == r, y+1 == c {
            print(cnt)
            return
        }
        return
    } else {
        let w = n/2
        if r < x+w, c < y+w {
            check(x, y, w)
        } else if r < x+w, c < y+n {
            cnt += w*w
            check(x, y+w, w)
        } else if r < x+n, c < y+w {
            cnt += w*w*2
            check(x+w, y, w)
        } else {
            cnt += w*w*3
            check(x+w, y+w, w)
        }
    }
}

check(0, 0, m)

๋ถ„ํ• ์ •๋ณต ์‘์šฉํ•ด์„œ ํ‘ธ๋Š” ๋ฌธ์ œ์ธ๋ฐ ์กฐ๊ธˆ ์–ด๋ ค์› ๋‹ค.

๋ฐ˜์‘ํ˜•
JerryiOS