43 lines
951 B
Swift
43 lines
951 B
Swift
import Foundation
|
|
|
|
if let input = readLine(),
|
|
let nums:[Int] = {
|
|
let temp = input.split(separator: " ").compactMap({Int($0)})
|
|
return temp.count == 3 ? temp : nil
|
|
}(){
|
|
var (N, r, c) = (nums[0],nums[1],nums[2])
|
|
|
|
var n = N
|
|
var result = 0
|
|
|
|
while n > 0 {
|
|
let half = Int(pow(2.0, Double(n-1)))
|
|
let quatorArea = half * half
|
|
|
|
switch (r,c)
|
|
{
|
|
case (0..<half, 0..<half) :
|
|
break
|
|
case (0..<half, half..<2*half) :
|
|
result += quatorArea
|
|
c -= half
|
|
case (half..<2*half, 0..<half) :
|
|
result += quatorArea*2
|
|
r -= half
|
|
case (half..<2*half, half..<2*half) :
|
|
result += quatorArea*3
|
|
c -= half
|
|
r -= half
|
|
default :
|
|
break
|
|
}
|
|
|
|
n -= 1
|
|
}
|
|
|
|
print(result)
|
|
|
|
}
|
|
else{
|
|
print("error")
|
|
} |