前の時間帯と比べて何人増減したかを計算して、次にその累積和を計算。
var T = int.Parse(Console.ReadLine()!); var N = int.Parse(Console.ReadLine()!); // 例えば0時から10時までの営業で、 // 5時から10時まで働く従業員がいた場合、 // B[10]が範囲外にならないよう、 // 配列の長さを1個多くしておく。 var B = new int[T + 1]; for (var i = 0; i < N; i++) { var input = Console.ReadLine()! .Split(' ') .Select(x => int.Parse(x)) .ToList(); var L = input[0]; var R = input[1]; B[L]++; B[R]--; } var Answer = new int[T]; Answer[0] = B[0]; Console.WriteLine(Answer[0]); for (var i = 1; i < T; i++) { Answer[i] = Answer[i - 1] + B[i]; Console.WriteLine(Answer[i]); }