質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

651閲覧

AtCoder典型90問一問目が分かりません。

Ftera

総合スコア5

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/10/07 02:12

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)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/10/07 02:27

check関数内のsat変数はどのような意味で使っていますか? 少なくとも sat += a[i] は sat = a[i] じゃないとおかしいと思います。
Ftera

2021/10/07 02:37

あ、本当でした、ものすごく初歩的な見落としをしていました…ありがとうございます。
guest

回答1

0

自己解決

初歩的なミスでした。

投稿2021/10/07 02:39

Ftera

総合スコア5

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問