using System;
// arr[first] = arr[first] (itself) * arr[next];
// arr[last] = prev * arr[last] (itself);
public class Program
{
private static void MultiplyNextPrevious(int[] arr) {
int size = arr.Length;
if (size <= 1) {
return;
}
int prev = arr[0];
arr[0] = arr[0] * arr[1];
for (int i = 1; i < size - 1; i++) {
int curr = arr[i];
arr[i] = prev * arr[i + 1]; // arr[i + 1] = next
prev = curr;
}
arr[size - 1] = prev * arr[size - 1];
}
public static void Main(string[] args)
{
int[] arr = new int[] {2, 3, 5, 6, 12, 8, 10, 7};
MultiplyNextPrevious(arr);
for (int i = 0; i < arr.Length; i++) {
Console.Write(arr[i] + " ");
}
}
}
/*
run:
6 10 18 60 48 120 56 70
*/