만드는 중입니다

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

새로운 수열

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

요약
원형 수열 A가 주어질 때, b_i를 a_{i+k mod N}에 (-1)^k 곱하기 (k+1)을 가중한 값의 합으로 정의하고 모든 b_i를 구한다.
난이도

보통10점 중 7점

유형
수학, 누적 합, 배열, 분할 정복
정답자
아직 제출이 없습니다

문제

길이가 NN인 수열 A={a0,a1,…,aN−1}A = \{a_0, a_1, \dots, a_{N-1}\}이 주어진다.

이 수열로부터 길이가 같은 새로운 수열 B={b0,b1,…,bN−1}B = \{b_0, b_1, \dots, b_{N-1}\}을 다음과 같이 정의한다.

bi=∑k=0N−1(−1)k(k+1) a(i+k) mod Nb_i = \sum_{k=0}^{N-1} (-1)^k (k+1) \, a_{(i+k) \bmod N}

첨자는 NN으로 나눈 나머지를 쓰므로, aNa_{N}은 a0a_0과 같고 aN+1a_{N+1}은 a1a_1과 같다. 즉 bib_i는 aia_i에서 시작해 수열을 한 바퀴 돌면서 kk번째 원소에 (−1)k(k+1)(-1)^k (k+1)을 곱해 모두 더한 값이다.

수열 AA가 주어지면 수열 BB를 구하라.

입력

첫째 줄에 NN이 주어진다. (1≤N≤300 0001 \le N \le 300\,000)

둘째 줄에 NN개의 정수 a0,a1,…,aN−1a_0, a_1, \dots, a_{N-1}이 공백으로 구분되어 주어진다. (∣ai∣≤109|a_i| \le 10^9)

출력

첫째 줄에 수열 BB를 이루는 NN개의 정수 b0,b1,…,bN−1b_0, b_1, \dots, b_{N-1}을 공백으로 구분해 출력한다.

모든 ii에 대해 ∣bi∣≤1018|b_i| \le 10^{18}이 성립하는 입력만 주어진다.

예제2

  1. 예제 1

    입력
    3
    4 1 -3
    
    예상 출력
    -7 19 -8
    
  2. 예제 2

    입력
    5
    -1 2 -3 4 -5
    
    예상 출력
    -55 35 -12 -12 35