1 ≦ Ai ≦ 10,000,000,000 なので、A1 = 1, A2 = 2, ... Ai = i になる、か?一応正解したけど腑に落ちていない。
var NK = Console.ReadLine()!.Split(" ").Select(x => long.Parse(x)).ToList(); var N = NK[0]; var K = NK[1]; var A = Console.ReadLine()!.Split(" ").Select(x => long.Parse(x)).ToList(); var leftSecond = 1L; var rightSecond = 10_000_000_000L; while (leftSecond < rightSecond) { var middleSecond = (leftSecond + rightSecond) / 2; if (Check(middleSecond)) { rightSecond = middleSecond; } else { leftSecond = middleSecond + 1; } } Console.WriteLine(rightSecond); bool Check(long second) { var sum = A.Sum(a => second / a); return sum >= K; }