Problem hidden
|This problem was hidden by Editorial Board member probably because it has incorrect language|version or invalid test data, or description of the problem is not clear.|

PTIT135H - Giải nén

Thuật toán nén như sau:

Giả sử cho một dãy n (chẵn) số nguyên.

Chúng ta sẽ tính tổng và hiệu của mỗi cặp số liên tiếp. Ví dụ ta có dãy

a(1),..., a(n)

Tổng thứ i - s(i) và hiệu thứ i - d(i) tính như sau:

for i = 1,...,n/2:

s(i) = a(2*i-1) + a(2*i)
d(i) = a(2*i-1) - a(2*i)
Sau đó xếp hai dãy lần lượt s(1),s(2)...s(n/2), d(1),d(2)...d(n/2).
Ví dụ: Dãy ban đầu: 
5, 2, 3, 2, 5, 7, 9, 6
-> s(i) = 7, 5, 12, 15
-> d(i) = 3, 1, -2, 3
do đó dãy được biến đổi sau đó là: 7, 5, 12, 15, 3, 1, -2, 3
Làm tương tự đệ quy với nửa đầu của dãy (coi như dãy đầu vào) cho đến đến khi dãy đầu vài có độ dài 1.
Như ví dụ trên, dãy biến đổi cuối cùng được: 39, -15, 2, -3, 3, 1, -2, 3
Giả sử rằng dãy ban đầu có độ dài là lũy thừa của 2 và chỉ chứa các số từ 0-255
Cho dãy đã biến đổi xong, tìm dãy ban đầu.

 

Input

Gồm nhiều bộ test, mỗi bộ test trên 1 dòng chứa số N (độ dài của dãy đã biến đổi xong, 1<=N<=256) và sau đó là N số của dãy đã biến đổi xong.

Bộ test kết thúc bơi N = 0 (không cần xử lý)

Output

Với mỗi bộ test, in ra dãy ban đầu.

Tất cả các số trên 1 dòng cách nhau bởi 1 dấu cách

Example

Input:
8 39 -15 2 -3 3 1 -2 3
4 10 -4 -1 -1
0
Output:
5 2 3 2 5 7 9 6
1 2 3 4

Được gửi lên bởi:adm
Ngày:2013-03-05
Thời gian chạy:5s
Giới hạn mã nguồn:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Ngôn ngữ cho phép:ASM32-GCC ASM32 MAWK BC C CSHARP C++ 4.3.2 CPP CPP14 COFFEE LISP sbcl DART FORTH GO JAVA JS-RHINO JS-MONKEY KTLN OCT PAS-GPC PAS-FPC PERL PERL6 PROLOG PYTHON PYTHON3 PY_NBC R RACKET SQLITE SWIFT UNLAMBDA

hide comments
2018-02-06 09:38:42
Giả sử cho một dãy n (chẵn) số nguyên mà test có số thực =_=
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.