Language: C++

import algorithm, future, macros, math, sequtils, sets, strutils, tables

macro unpack(rhs: seq, cnt: static[int]): auto =
  let t = genSym(); result = quote do:(let `t` = `rhs`;())
  if NimMinor <= 17:
    for i in 0..<cnt: result[0][1].add(quote do:`t`[`i`])
  else:
    for i in 0..<cnt: result[1].add(quote do:`t`[`i`])

template input(T: typedesc, cnt: Natural = 1): untyped =
  let line = stdin.readLine.split(" ")
  when T is int:         line.map(parseInt).unpack(cnt)
  elif T is float:       line.map(parseFloat).unpack(cnt)
  elif T is string:      line.unpack(cnt)
  elif T is char:        line.mapIt(it[0]).unpack(cnt)
  elif T is seq[int]:    line.map(parseint)
  elif T is seq[float]:  line.map(parseFloat)
  elif T is seq[string]: line
  elif T is seq[char]:   line.mapIt(it[0])

proc `%=`(n: var int, m: int)  = n = n mod m
proc `//=`(n: var int, m: int) = n = n div m
proc `<<=`(n: var int, m: int) = n = n shl m
proc `>>=`(n: var int, m: int) = n = n shr m
proc `<?=`(n: var int, m: int) = n = min(n, m)
proc `>?=`(n: var int, m: int) = n = max(n, m)
proc newSeq2[T](n1, n2: Natural): seq[seq[T]] = newSeqWith(n1, newSeq[T](n2))
proc newSeq3[T](n1, n2, n3: Natural): seq[seq[seq[T]]] = newSeqWith(n1, newSeqWith(n2, newSeq[T](n3)))

# -------------------------------------------------- #

var N = input(int)
var A = @[0] & input(seq[int])
var res = newSeq[int](N + 1)
var S = A.sum()
res[1] = S
for i in countup(2, N - 1, 2):
  res[1] -= 2 * A[i]
for i in 2 .. N:
  res[i] = 2 * A[i - 1] - res[i - 1]
echo res[1 .. N].mapIt($it).join(" ")

Compiler output:
a.cc:4:44: error: stray '`' in program
    4 |   let t = genSym(); result = quote do:(let `t` = `rhs`;())
      |                                            ^
a.cc:4:46: error: stray '`' in program
    4 |   let t = genSym(); result = quote do:(let `t` = `rhs`;())
      |                                              ^
a.cc:4:50: error: stray '`' in program
    4 |   let t = genSym(); result = quote do:(let `t` = `rhs`;())
      |                                                  ^
a.cc:4:54: error: stray '`' in program
    4 |   let t = genSym(); result = quote do:(let `t` = `rhs`;())
      |                                                      ^
a.cc:6:14: error: too many decimal points in number
    6 |     for i in 0..<cnt: result[0][1].add(quote do:`t`[`i`])
      |              ^~~
a.cc:6:49: error: stray '`' in program
    6 |     for i in 0..<cnt: result[0][1].add(quote do:`t`[`i`])
      |                                                 ^
a.cc:6:51: error: stray '`' in program
    6 |     for i in 0..<cnt: result[0][1].add(quote do:`t`[`i`])
      |                                                   ^
a.cc:6:53: error: stray '`' in program
    6 |     for i in 0..<cnt: result[0][1].add(quote do:`t`[`i`])
      |                                                     ^
a.cc:6:55: error: stray '`' in program
    6 |     for i in 0..<cnt: result[0][1].add(quote do:`t`[`i`])
      |                                                       ^
a.cc:8:14: error: too many decimal points in number
    8 |     for i in 0..<cnt: result[1].add(quote do:`t`[`i`])
      |              ^~~
a.cc:8:46: error: stray '`' in program
    8 |     for i in 0..<cnt: result[1].add(quote do:`t`[`i`])
      |                                              ^
a.cc:8:48: error: stray '`' in program
    8 |     for i in 0..<cnt: result[1].add(quote do:`t`[`i`])
      |                                                ^
a.cc:8:50: error: stray '`' in program
    8 |     for i in 0..<cnt: result[1].add(quote do:`t`[`i`])
      |                                                  ^
a.cc:8:52: error: stray '`' in program
    8 |     for i in 0..<cnt: result[1].add(quote do:`t`[`i`])
      |                                                    ^
a.cc:21:6: error: stray '`' in program
   21 | proc `%=`(n: var int, m: int)  = n = n mod m
      |      ^
a.cc:21:9: error: stray '`' in program
   21 | proc `%=`(n: var int, m: int)  = n = n mod m
      |         ^
a.cc:22:6: error: stray '`' in program
   22 | proc `//=`(n: var int, m: int) = n = n div m
      |      ^
a.cc:23:6: error: stray '`' in program
   23 | proc `<<=`(n: var int, m: int) = n = n shl m
      |      ^
a.cc:23:10: error: stray '`' in program
   23 | proc `<<=`(n: var int, m: int) = n = n shl m
      |          ^
a.cc:24:6: error: stray '`' in program
   24 | proc `>>=`(n: var int, m: int) = n = n shr m
      |      ^
a.cc:24:10: error: stray '`' in program
   24 | proc `>>=`(n: var int, m: int) = n = n shr m
      |          ^
a.cc:25:6: error: stray '`' in program
   25 | proc `<?=`(n: var int, m: int) = n = min(n, m)
      |      ^
a.cc:25:10: error: stray '`' in program
   25 | proc `<?=`(n: var int, m: int) = n = min(n, m)
      |          ^
a.cc:26:6: error: stray '`' in program
   26 | proc `>?=`(n: var int, m: int) = n = max(n, m)
      |      ^
a.cc:26:10: error: stray '`' in program
   26 | proc `>?=`(n: var int, m: int) = n = max(n, m)
      |          ^
a.cc:30:3: error: invalid preprocessing directive #--
   30 | # -------------------------------------------------- #
      |   ^~
a.cc:33:9: error: stray '@' in program
   33 | var A = @[0] & input(seq[int])
      |         ^
a.cc:1:1: error: 'import' does not name a type
    1 | import algorithm, future, macros, math, sequtils, sets, strutils, tables
      | ^~~~~~
a.cc:1:1: note: C++20 'import' only available with '-fmodules-ts'
a.cc:4:21: error: 'result' does not name a type
    4 |   let t = genSym(); result = quote do:(let `t` = `rhs`;())
      |                     ^~~~~~
a.cc:4:57: error: expected unqualified-id before ')' token
    4 |   let t = genSym(); result = quote do:(let `t` = `rhs`;())
      |                                                         ^