본문 바로가기

PS

백준 BOJ 1074 C++ Z

#include <bits/stdc++.h>
using namespace std;

void recur(int n, int r, int c, int cnt) {
    if (n == 1) {
        cout << cnt << '\n';
        return;
    }
    int half = n >> 1;
    if (r < half && c < half) {
        recur(half, r, c, cnt);
    } else if (r < half && c >= half) {
        recur(half, r, c - half, cnt + 1 * half * half);
    } else if (r >= half && c < half) {
        recur(half, r - half, c, cnt + 2 * half * half);
    } else if (r >= half && c >= half) {
        recur(half, r - half, c - half, cnt + 3 * half * half);
    }
}

void solve() {
    int n, r, c;
    cin >> n >> r >> c;
    n = 1 << n;
    recur(n, r, c, 0);
}

int main() {
    ios::sync_with_stdio(0);
    cin.tie(0);
    solve();
    return 0;
}

'PS' 카테고리의 다른 글

백준 BOJ 2447 C++ 별 찍기 - 10  (0) 2026.04.22
백준 BOJ 1780 C++ 종이의 개수  (1) 2026.04.22
백준 BOJ 11967 C++ 불켜기  (0) 2026.04.17
백준 BOJ 16920 C++ 확장 게임  (0) 2026.04.17
백준 BOJ 16933 C++ 벽 부수고 이동하기 3  (0) 2026.04.16