小红的数组构造
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 1024 M,其他语言2048 M
64bit IO Format: %lld

题目描述

\hspace{15pt}小红拿到了一个长度为 n 的数组 a_1,a_2,\dots,a_n。她会进行 q 次查询,每次输入两个正整数 l,r,她希望你构造一个长度为 r-l+1 的数组,满足该数组的前缀和数组恰好是原数组 a[l,r] 区间对应的连续子数组。换句话说,记新数组为 b_1,b_2,\dots,b_{r-l+1},则有

\begin{cases}<br />    a_1=b_l \\ <br />    a_2=b_l+b_{l+1} \\ <br />    \dots \\ <br />    a_{r-l+1}=b_l+b_{l+1}+\dots+b_{r-l+1}<br />\end{cases}

\hspace{15pt}我们可以证明,答案一定存在且唯一。你能帮帮她吗?

【名词解释】
\hspace{15pt}我们定义,前缀和数组为数组的“前 i 项和”构成的数组。例如 \{1,2,2,1\} 的前缀和数组是 \{1,1+2=3,3+2=5,5+1=6\}\{1,3,5,6\}

输入描述:

\hspace{15pt}第一行输入一个整数 n \left(1\leqq n \leqq 100\right),代表数组长度。
\hspace{15pt}第二行输入 n 个整数 a_1,a_2,\dots,a_n \left(1\leqq a_i \leqq 10^9\right),代表小红拿到的的数组。
\hspace{15pt}第三行输入一个整数 q \left(1\leqq q \leqq 100\right),代表询问次数。
\hspace{15pt}此后 q 行,第 i 行输入两个正整数 l_i,r_i \left(1\leqq l_i \leqq r_i \leqq n\right),代表第 i 次询问。

输出描述:

\hspace{15pt}对于第 i 次询问,新起一行,在同一行上输出 r_i-l_i+1 个整数,代表小红构造的数组。
\hspace{15pt}我们可以证明,该数组一定存在且唯一。
示例1

输入

复制
5
1 3 5 2 1
2
1 3
3 4

输出

复制
1 2 2
5 -3