(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)}