중앙 이동 알고리즘

시간 제한1초메모리 제한128 MB

요약
정사각형에서 시작해 중간점 분할 알고리즘을 N번 적용했을 때 생기는 서로 다른 점의 개수를 구하는 문제로, (2^N+1) x (2^N+1) 격자 크기를 이용한 공식으로 계산합니다.
난이도

쉬움10점 중 3점

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

문제

상근이는 친구들과 함께 SF 영화를 찍으려고 한다. 이 영화에는 외계 지형이 필요하지만, 실제로 우주선을 타고 외계 행성에 가서 촬영할 수는 없으므로 컴퓨터 그래픽으로 지형을 만들려고 한다.

외계 지형은 중앙 이동 알고리즘으로 만든다.

알고리즘을 시작할 때 상근이는 정사각형을 이루는 점 4개를 고른다. 그다음에는 각 정사각형마다 아래 과정을 수행하여 지형을 세분한다.

  1. 정사각형의 각 변의 중앙에 점을 하나씩 추가한다.
  2. 정사각형의 중심에 점을 하나 추가한다.

초기 상태에서 이 과정을 한 번 거치면 정사각형이 4개로 나뉜다. 상근이는 만족할 때까지 새로 생긴 모든 정사각형에 같은 과정을 반복한다.

아래 그림은 과정을 2번까지 거쳤을 때의 모습이다.

초기 상태 - 점 4개1번 - 점 9개2번 - 점 25개

어떤 점은 두 개 이상의 정사각형에 동시에 포함될 수 있다. 메모리를 절약하기 위해 겹치는 점은 한 번만 저장한다. 과정을 N번 거친 뒤 저장해야 하는 서로 다른 점의 개수를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 정수 N이 주어진다. (1 ≤ N ≤ 15)

출력

첫째 줄에 과정을 N번 거친 뒤 저장해야 하는 서로 다른 점의 개수를 출력한다.

예제3

  1. 예제 1

    입력
    1
    
    예상 출력
    9
    
  2. 예제 2

    입력
    2
    
    예상 출력
    25
    
  3. 예제 3

    입력
    5
    
    예상 출력
    1089