Задачи на массивы - обычно самые элементарные, скучные и неинтересные.
Просто кнопконажимательство.
Но я, так и быть, напишу тебе метод, который это счастье посчитает.
Ввод-вывод - это уж ты сам как-нибудь.
public static T Min<T>(T a, T b) where T : IComparable<T> => a.CompareTo(b) < 0 ? a : b;
public static T[] MinArr<T>(T[] a, T[] b) where T : INumber<T>, IComparable<T>
{
T[] Result = new T[a.Length];
for (int i = 1; i < a.Length; i++)
Result[i] = Min(a[i], b[i]);
return Result;
}
public static T ScrewSomeArrays<T>(T[] a, T[] b, T[] c, T x0, T y0, out T[] x, out T[] y) where T : INumber<T>, IComparable<T>
{
x = new T[a.Length];
y = new T[a.Length];
x[0] = x0;
y[0] = y0;
for (int i = 1; i < a.Length; i++)
{
x[i] = x[i - 1] + a[i];
y[i] = y[i - 1] + a[i];
}
var minx = MinArr(x, b);
var miny = MinArr(y, c);
int n = a.Length - 1;
if (x[n] + miny[n] > minx[n] + y[n])
y = miny;
else
x = minx;
return x[n] + y[n];
}