만드는 중입니다

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

Pibonacci 2

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

요약
n이 주어지면 P[n-1]과 P[n-π]의 합으로 정의된 Pibonacci 수열의 P[n]을 10^18로 나눈 나머지로 구합니다.
난이도

보통10점 중 6점

유형
동적 계획법, 수학
정답자
아직 제출이 없습니다

문제

피보나치 수열은 매우 유명한 수열이며, 점화식은 F[i]=F[i−1]+F[i−2]F[i] = F[i-1] + F[i-2]로 표현된다. 이 문제에서는 이를 살짝 변형한 피보나치(Pibonacci) 수열을 다룬다. 점화식은 다음과 같다.

  • P[n]=1P[n] = 1 (0 ≤ n ≤ π)
  • P[n]=P[n−1]+P[n−π]P[n] = P[n-1] + P[n-π] (그 외)

n이 꼭 정수일 필요는 없다. 예를 들어 P[n−π]P[n-π]는 P[n−π−1]+P[n−π−π]P[n-π-1] + P[n-π-π]와 같은 식으로 계산해야 한다.

자연수 n이 주어졌을 때, P[n]P[n]을 구하는 프로그램을 작성하시오.

입력

첫째 줄에 자연수 n(1 ≤ n ≤ 1,000,000)이 주어진다.

출력

첫째 줄에 P[n]P[n]을 출력한다. 값이 매우 커질 수 있으므로 1,000,000,000,000,000,000으로 나눈 나머지를 출력한다.

예제1

  1. 예제 1

    입력
    10
    
    예상 출력
    19