1 of 2

QBIC, 27 bytes

g=(:+1)'\2`~(a-g)%2|g=-g}?g

Explanation

g=          set worker var 'g' to
(:+1)           our index (plus one for the ceil() bit)
'\2`            integer divided by 2 (the int div needs a code literal: '..`
~(a-g)%2    IF index - temp result is odd (index 2 minus result 1 = 1)
|g=-g       THEN negate g
}           END IF
?g          print the result