수열의 비밀 (Hard)

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

요약
길이 n = 2^k - 1인 수열의 각 항을 인덱스의 이진 트리에서 두 아핀 점화식으로 정의하고, 전체 합을 1e9+7로 나눈 나머지를 구한다.
난이도

보통10점 중 7점

유형
분할 정복, 재귀, 수학, 구현
정답자
아직 제출이 없습니다

문제

다음 조건을 만족하는 길이가 nn인 수열 a_1,a_2,a_3,…,a_na\_1, a\_2, a\_3, \ldots, a\_n가 있다.

  • a_2i=p⋅a_i+qa\_{2i} = p \cdot a\_i + q (2≤2i≤n)(2 \leq 2i \leq n)
  • a_2i+1=r⋅a_i+sa\_{2i+1} = r \cdot a\_{i} + s (3≤2i+1≤n)(3 \leq 2i+1 \leq n)

S_n=a_1+a_2+…+a_nS\_n=a\_1+a\_2+\ldots +a\_{n}으로 정의할 때 S_nS\_n을 109+7{10^9+7}로 나눈 나머지를 출력하라.

입력

첫 번째 줄에 양의 정수 kk가 주어진다. (n=2k−1)(n=2^k-1)

두 번째 줄에 양의 정수 p,q,r,sp,q,r,s가 공백으로 구분되어 주어진다.

세 번째 줄에 양의 정수 a_1a\_1이 주어진다.

출력

첫 번째 줄에 S_nS\_n을 109+7{10^9 + 7}로 나눈 나머지를 출력한다.

제한

  • 1≤k≤501\leq k\leq 50
  • 1≤p,q,r,s≤1001\leq p,q,r,s\leq 100
  • 1≤a_1≤101\leq a\_1\leq 10

힌트

연산 과정 중 C/C++의 int 범위를 넘어갈 수 있으므로 long long 자료형을 사용하는 것을 추천한다.

예제1

  1. 예제 1

    입력
    3
    2 1 1 2
    1
    
    예상 출력
    31