N はたかだか 100 までだし、行数もたった 2 行なので、愚直な 2 重ループによる全探索で問題なく間に合う。一見ループは 1 つだけに見えるけど、LINQ を使っているので、やっていることは 2 重ループと同じ。
using System; using System.Linq; namespace ABC087C { class Program { static void Main(string[] args) { var N = int.Parse(Console.ReadLine()); var A1N = Console.ReadLine() .Split(' ') .Select(a => int.Parse(a)) .ToList(); var A2N = Console.ReadLine() .Split(' ') .Select(a => int.Parse(a)) .ToList(); var max = 0; for (var i = 0; i < N; i++) { var a1Total = A1N.Take(i + 1).Sum(); var a2Total = A2N.Skip(i).Take(N - i).Sum(); var total = a1Total + a2Total; max = Math.Max(max, total); } Console.WriteLine(max); } } }