주기 함수 (Hard)

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

요약
각 단위 구간 [i-1, i]에서의 f의 적분값 L개가 주어지고, L을 나누는 미지의 주기 p가 L/2 이하일 때 f의 a부터 b까지의 적분값을 구한다.
난이도

어려움10점 중 8점

유형
문자열 매칭, 수학, 누적 합, 이분 탐색
정답자
아직 제출이 없습니다

문제

이 문제는 주기 함수 (Easy) 문제와 입력 조건이 다르다.

주기 함수(週期函數, 영어: periodic function)는 함숫값이 일정 주기마다 되풀이되는 함수이다. 구체적으로는 모든 xx에 대해 f(x+p)=f(x)f(x+p)=f(x)인 양수 pp가 존재할 때 함수 f(x)f(x)를 주기 함수라 하고, pp를 주기라 한다. 같은 함수에 대해서도 주기는 여러 값을 가질 수 있다. 예를 들어 f(x)=sin⁡xf(x) = \sin x인 경우 모든 양의 정수 nn에 대해 2nπ2n\pi는 주기가 될 수 있다.

주기 함수는 정적분을 계산할 때 용이하다. 주기만큼 적분 구간을 바꾸어도 그 값은 동일하기 때문이다. 예를 들어 sin⁡\sin 함수의 경우 주기가 2π2\pi이므로 ∫_0πsin⁡xdx=∫_2π3πsin⁡xdx\displaystyle\int\_0^\pi \sin x dx = \int\_{2\pi}^{3\pi} \sin x dx이다.

두영이는 매일 이안이가 모르는 주기 함수를 가지고 와서 임의의 구간의 적분값을 주고, 주어진 구간의 적분값을 찾는 문제를 풀어달라고 한다. 매일 문제를 푸느라 지친 이안이는 자동으로 답을 구해주는 프로그램을 만들고자 한다.

입력

첫 번째 줄에 적분값이 주어질 구간의 길이 LL이 주어진다.

두 번째 줄에 구간의 적분값 LL개가 공백으로 구분되어 주어진다. 1≤i≤L1 \le i \le L인 정수 ii에 대해 ii번째 수는 ∫_i−1if(x)dx\displaystyle \int \_{i - 1}^i f(x) dx를 나타낸다.

세 번째 줄에 구하고자 하는 구간의 위치 aa와 bb가 공백으로 구분되어 주어진다.

출력

∫_abf(x)dx\displaystyle\int\_a^b f(x)dx의 값을 한 줄에 출력한다.

제한

  • 2≤L≤3×1052 \le L \le 3\times 10^5
  • −109≤a≤b≤109-10^9 \le a \le b \le 10^9
  • 모든 적분값의 절댓값은 10910^9보다 작거나 같다.
  • 모든 입력은 정수이다.
  • 주기의 길이는 L2\displaystyle\frac{L}{2} 이하의 정수임이 보장된다.

예제2

  1. 예제 1

    입력
    10
    1 2 3 1 2 3 1 2 3 1
    2 5
    
    예상 출력
    6
    
  2. 예제 2

    입력
    10
    1 2 3 4 5 1 2 3 4 5
    -5 15
    
    예상 출력
    60