
ํ์๋ ํฌ๊ธฐ๊ฐ 2Nย ร 2N์ธ 2์ฐจ์ ๋ฐฐ์ด์ Z๋ชจ์์ผ๋ก ํ์ํ๋ ค๊ณ ํ๋ค. ์๋ฅผ ๋ค์ด, 2ร2๋ฐฐ์ด์ ์ผ์ชฝ ์์นธ, ์ค๋ฅธ์ชฝ ์์นธ, ์ผ์ชฝ ์๋์นธ, ์ค๋ฅธ์ชฝ ์๋์นธ ์์๋๋ก ๋ฐฉ๋ฌธํ๋ฉด Z๋ชจ์์ด๋ค.

N > 1์ธ ๊ฒฝ์ฐ, ๋ฐฐ์ด์ ํฌ๊ธฐ๊ฐ 2N-1ย ร 2N-1๋ก 4๋ฑ๋ถ ํ ํ์ ์ฌ๊ท์ ์ผ๋ก ์์๋๋ก ๋ฐฉ๋ฌธํ๋ค.
๋ค์ ์๋ 22ย ร 22ย ํฌ๊ธฐ์ ๋ฐฐ์ด์ ๋ฐฉ๋ฌธํ ์์์ด๋ค.

N์ด ์ฃผ์ด์ก์ ๋, rํ c์ด์ ๋ช ๋ฒ์งธ๋ก ๋ฐฉ๋ฌธํ๋์ง ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
๋ค์์ N=3์ผ ๋์ ์์ด๋ค.

์ฒซ์งธ ์ค์ ์ ์ N, r, c๊ฐ ์ฃผ์ด์ง๋ค.
rํ c์ด์ ๋ช ๋ฒ์งธ๋ก ๋ฐฉ๋ฌธํ๋์ง ์ถ๋ ฅํ๋ค.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
static int N, r, c, count = 0;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
N = Integer.parseInt(st.nextToken()); //
r = Integer.parseInt(st.nextToken());
c = Integer.parseInt(st.nextToken());
int pow = (int)Math.pow(2, N);
findIndex(0, 0, pow);
System.out.println(count);
}
private static void findIndex(int row, int col, int size) {
if(size == 1) {
return;
}
int halfSize = size / 2;
int blockSize = halfSize * halfSize;
if(r < row + halfSize && c < col + halfSize) { // ์ข์
findIndex(row, col, halfSize);
} else if(r < row + halfSize && c >= col + halfSize) { // ์ฐ์
count += blockSize;
findIndex(row, col + halfSize, halfSize);
} else if(r >= row + halfSize && c < col + halfSize) { // ์ขํ
count += blockSize * 2;
findIndex(row + halfSize, col, halfSize);
} else { // ์ฐํ
count += blockSize * 3;
findIndex(row + halfSize, col + halfSize, halfSize);
} }
}
์ฒ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ๋ ๋ฐฐ์ด๋ก ์ฒ๋ฆฌํ๋ ค๊ณ ํ๋๋ฐ, ๊ทธ๋ฐ์์ผ๋ก ์ฒ๋ฆฌํ๊ฒ ๋๋ฉด ๋ฐฐ์ด์ ํฌ๊ธฐ๊ฐ ๋๋ฌด ์ปค์ ธ์ ๋ฉ๋ชจ๋ฆฌ ์ด๊ณผ๊ฐ ๋ฐ์ํ์ต๋๋ค.
์ดํ์๋ ๋ถํ ์ ๋ณต์ผ๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค.
1. findIndex ๋ฉ์๋๋ฅผ ํธ์ถํ ๋ ๋ง๋ค ํด๋นํ๋ ์ฌ๋ถ๋ฉด์ ๋ฐ๋ผ count ๊ฐ์ ๋ํด์ฃผ๋ ์์ผ๋ก ๋ฌธ์ ๋ฅผ ํ๋๋ค.
2. 1์ฌ๋ถ๋ฉด์ด๋ฉด ๋ค์ findIndex๋ฅผ ํธ์ถ, ์ดํ ์ฌ๋ถ๋ฉด๋ค์ ์ด์ ์ฌ๋ถ๋ฉด์ ํฌ๊ธฐ ์ด์์ index ๊ฐ์ ๊ฐ๊ธฐ ๋๋ฌธ์ count์ blockSize * N -1 ๊ฐ์ ๋ํด์ค๋๋ค.
3. ๋ง์ง๋ง size๊ฐ 1์ผ ๋ ๊ตฌํด์ง๋ count์ ๊ฐ์ด ์ ๋ต์ด ๋ฉ๋๋ค.