[BOJ 2968] 보드 게임의 왕 김동혁

View as PDF

Submit solution

Points: 4
Time limit: 1.0s
Memory limit: 128M

Problem types
Allowed languages
Assembly, Awk, C, C++, Java, Pascal, Perl, Python, Sed, Text

동혁이는 창고에서 매우 재미있어 보이는 보드 게임을 발견했다. 이 게임의 보드는 R×C개의 정사각형 칸으로 이루어져 있다. 제일 위부터 0번부터 R-1까지 번호가 매겨져 있고, 제일 왼쪽부터 0번부터 C-1까지 번호가 매겨져 있다.

이 보드게임의 칸은 색다른 방법으로 색칠되어 있고, 각 칸은 회색 또는 흰색으로 색칠되어 있다.

행의 번호와 열의 번호를 이진수로 나타냈을 때, 적어도 한 위치에서 1이 겹치면 흰색이다. 예를 들어, (4, 5)는 흰색이다. 이러한 경우가 아니면 회색이다. 예를 들어, (2, 5)는 회색이다.

10×10크기의 보드판은 다음과 같이 생겼다.

동혁이는 자신의 말을 위쪽 오른쪽 그림과 같은 순서로 방문하려고 한다. 말은 (0, 0)에서 시작한다. 이때, 말이 회색 칸을 몇 번 방문하는지 구하려고 한다.

동혁이의 말이 칸을 K번 방문하게 되면, 피곤하기 때문에 더이상 방문하지 않는다.

N, M, K가 주어졌을 때, 회색칸을 몇 번 방문하는지 구하는 프로그램을 작성하시오.

입력 형식

첫째 줄에 R과 C가 주어진다. (1 ≤ R,C ≤ 1,000,000)

둘째 줄에는 K가 주어진다. (1 ≤ K ≤ R×C)

출력 형식

첫째 줄에 동혁이의 말이 방문한 회색 칸의 수를 출력한다.

예제 입력 1

10 10
6

예제 출력 1

5

예제 입력 2

3 5
11

예제 출력 2

8

예제 입력 3

10 10
100

예제 출력 3

51

Comments

There are no comments at the moment.