๋ถํ ์ ๋ณต์ ํตํด ํด๊ฒฐํ ๋ฌธ์ ๊ฐ๋จํ ์๊ณ ๋ฆฌ์ฆ์ ๊ฐ์ง ๋ฌธ์ ์ด์ง๋ง ๋ถํ ์ ๋ณต์ ์ต์ํ์ง ์์ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฐ ๋ฌธ์ ์ด๋ค.. ์์ผ๋ก ๋ฌธ์ ํธ์์ ํ์ง ๋ง์์ผ๊ฒ ๋ค..
์ด ๋ฌธ์ ๋ ๋ฐฐ์ด์ Z
๋ชจ์์ผ๋ก ๊ณ์ํ์ฌ ํ์ํ ๋ r
ํ c
์ด์ ๋ช ๋ฒ์งธ๋ก ๋ฐฉ๋ฌธํ๋์ง ์์๋ด๋ ๋ฌธ์ ์ด๋ค.
๊ฒฐ๊ตญ์ r
ํ c
์ด์ ์์น๋ 2X2 ๊ณต๊ฐ์ ์๋ 4๊ฐ์ ์์์ค ํ๋์ด๋ค. ์ด๋ฅผ ์ํด ํ์ฌ ํ์ํ๋ ๊ณต๊ฐ์ ํฌ๊ธฐ๊ฐ 2X2๊ฐ ๋ ๋๊น์ง ๋ณด๋๋ฅผ ๋๋๋ฉฐ ๋ถํ ์ ๋ณต ํด์ผ๊ฒ ๋ค๊ณ ์๊ฐํ์๋ค.
r
๊ณผ c
๋ฅผ ์
๋ ฅ๋ฐ๋๋ค.#include<iostream>
#include<cmath>
using namespace std;
int main(){
int n;
int r;
int c;
int answer = 0;
cin >> n >> r >> c;
while(n >= 0){
--n;
// 1 ์ฌ๋ถ๋ฉด
if(pow(2, n) > r && pow(2, n) > c){
answer += 0;
}
// 2 ์ฌ๋ถ๋ฉด
else if(pow(2, n) > r && pow(2, n) <= c){
c -= pow(2, n);
answer += pow(2, n) * pow(2, n);
}
// 3 ์ฌ๋ถ๋ฉด
else if(pow(2, n) <= r && pow(2, n) > c){
r -= pow(2, n);
answer += pow(2, n) * pow(2, n) * 2;
}
// 4 ์ฌ๋ถ๋ฉด
else{
c -= pow(2, n);
r -= pow(2, n);
answer += pow(2, n) * pow(2, n) * 3;
}
}
cout << answer;
}