AtCoderの典型90問の一問目をpythonで解いているのですが、どこがおかしいのかが分かりません。
問題文
左右の長さが L [cm] のようかんがあります。 N 個の切れ目が付けられており、左から i 番目の切れ目は左からAi [cm] の位置にあります。
あなたは N 個の切れ目のうち K 個を選び、ようかんを K+1 個のピースに分割したいです。そこで、以下の値を スコア とします。
K+1 個のピースのうち、最も短いものの長さ(cm 単位)
スコアが最大となるように分割する場合に得られるスコアを求めてください。
制約
1≤K≤N≤100000
0<A1<A2<⋯<AN<L≤10^9
入力はすべて整数
入力
入力は以下の形式で標準入力から与えられます。
N L
K
A1 A2 ... An
出力
求めるスコアを出力してください。
python
1n, l = map(int, input().split()) 2k = int(input()) 3a = list(map(int, input().split())) 4 5def check(x): 6 cnt = 0 7 sat = 0 8 for i in range(n): 9 if a[i] - sat >= x: 10 cnt += 1 11 sat += a[i] 12 13 if l - sat >= x: 14 cnt += 1 15 16 return(cnt) 17 18left = -1 19right = l + 1 20while right - left > 1: 21 mid = (right + left) // 2 22 if check(mid) >= k + 1: 23 left = mid 24 else: 25 right = mid 26 27print(left)
回答1件
あなたの回答
tips
プレビュー