(1) natomic void prefixsum(int *x, int n, int *s)
(2){
(3)  int y[ARRAY_SIZE], z[ARRAY_SIZE];
(4)  if (n == 1) s[0] = x[0];
(5)  else {
(6)    par i = 0 to n / 2 - 1 do
(7)      y[i] = x[2 * i] + x[2 * i + 1];
(8)    prefixsum(y, n / 2, z);
(9)    par i = 0 to n - 1 do
(10)     if (i % 2) s[i] = z[i / 2];
(11)     else if (i == 0) s[0] = x[0];
(12)     else s[i] = z[(i - 1) / 2] + x[i];
(13)  }
(14)}