만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

In or Out

면접 대비

시간 제한2초메모리 제한1024 MB

요약
각 복소수 c에 대해 z = z^2 + c를 최대 r번 반복해 |z|가 한 번도 2를 넘지 않으면 IN, 넘으면 OUT을 판정한다.
난이도

쉬움10점 중 3점

유형
시뮬레이션, 수학, 구현
정답자
아직 제출이 없습니다

문제

바르샤바에서 태어난 브누아 망델브로(1924-2010)는 프랙탈 기하학의 아버지로 여겨진다. 그는 프랙탈이라 불리는 자기 유사적이고 자연스러운 도형을 설명하는 수학적 과정을 연구했다. 아마도 그의 가장 잘 알려진 업적은 아래에 그려진 망델브로 집합일 것이다(검은 점이 집합에 포함된다):

망델브로 집합은 보통 모든 복소수를 나타내는 2차원 평면인 복소평면 위에 그린다. 가로축은 수의 실수부를 나타내고, 세로축은 허수부를 나타낸다. 복소수 c=x+yic = x + yi (복소평면 위의 위치 (x,y)(x, y))는 다음 수열이 발산하면 망델브로 집합에 속하지 않는다:

zn+1←zn2+cz_{n+1} \leftarrow z_n^2 + c

z0=0z_0 = 0 에서 시작한다. 즉 lim⁡n→∞∣zn∣=∞\lim_{n \to \infty}{|z_n|} = \infty 이다. 수열이 발산하지 않으면 cc 는 집합에 속한다.

허수와 그 연산에 관한 다음 사실을 기억하자:

i=−1i = \sqrt{-1}, i2=−1i^2 = −1, (x+yi)2=x2−y2+2xyi(x + yi)^2 = x^2 − y^2 + 2xyi, ∣x+yi∣=x2+y2|x + yi| = \sqrt{x^2 + y^2}

여기서 xx 와 yy 는 실수이고, ∣⋅∣| \cdot | 는 복소수의 절댓값이다(복소평면에서 x+yix + yi 의 절댓값은 원점에서 점 (x,y)(x, y) 까지의 직선 거리와 같다).

주어진 값 cc 에 대해 정해진 반복 횟수 안에서 수열 znz_n 이 발산하는지 판별하는 프로그램을 작성하라. 즉 cc 가 망델브로 집합에 속하는지 아닌지 판별하는 것이다. 발산을 검출하려면 계산한 임의의 znz_n 에 대해 ∣zn∣>2|z_n| > 2 인지만 확인하면 된다. 이 조건이 성립하면 수열은 반드시 발산한다.

입력

각 테스트 케이스는 세 수를 포함하는 한 줄로 주어진다. 두 실수 −3≤x≤3-3 \le x \le 3 와 −3≤y≤3-3 \le y \le 3, 그리고 정수 0≤r≤10 0000 \le r \le 10\,000 이다. 이 케이스의 cc 값은 x+yix + yi 이고, rr 은 계산할 최대 반복 횟수이다.

출력

각 케이스마다 케이스 번호를 출력하고, 주어진 cc 가 망델브로 집합에 속하는지 IN 또는 OUT 으로 출력하라.

예제1

  1. 예제 1

    입력
    0 0 100
    1.264 -1.109 100
    1.264 -1.109 10
    1.264 -1.109 1
    -2.914 -1.783 200
    0.124 0.369 200
    
    예상 출력
    Case 1: IN
    Case 2: OUT
    Case 3: OUT
    Case 4: IN
    Case 5: OUT
    Case 6: IN