とあるサイトのスキルチェックの問題で何度試しても結果が通らないのでぜひどこが不十分なのか、教えていただけると幸いです。コード提出前の動作チェックでは問題がエラーは出ないのですが、提出後のテスト(入力値などは不明)ではほとんどが通りません。いろんな部分を別の書き方などにしてみてやってみましたが全く変化なしです。結果が通っていないテストの入力値がわからないので不便ではあると思いますがよろしくお願いします。
###問題
あなたは今いる場所から X メートル離れた場所へ、 1 台のタクシーで移動しようとしています。
利用可能なタクシー N 台の料金のパラメータが与えられるので、タクシーで X メートル移動した際の最安値と最高値を計算してください。
例えば、 入力例 1 の場合は以下のように 600円 が最安値となり、 800円 が最高値となります。
1 番目のタクシーは初乗り距離以上なので加算距離 1 つ分が追加され 600円 かかります。
2 番目のタクシーは初乗り距離までで到着するので、初乗り運賃のみで 800円 かかります。
入力例1
2 700
600 200 200 400
900 800 400 500
出力例1
600 800
入力されるフォーマット:
N X
a_1 b_1 c_1 d_1
a_2 b_2 c_2 d_2
...
a_N b_N c_N d_N
出力のフォーマット:
P_1 P_2
・1 行目にタクシーの種類数 N、目的地までの距離 X がこの順に整数で半角スペース区切りで与えられます。
・2 行目から続く N 行には i 番目 (1 ≦ i ≦ N) のタクシーの 初乗り距離 a_i、 初乗り運賃 b_i、 加算距離 c_i、 加算運賃 d_i が整数でこの順にスペース区切りで与えられます。
・入力は合計 N + 1 行であり、最終行の末尾に改行が1つ入ります。
条件
すべてのテストケースにおいて、以下の条件をみたします。
・2 ≦ N ≦ 100
・1 ≦ X ≦ 100,000
・1 ≦ a_i, b_i, c_i, d_i ≦ 5,000 (1 ≦ i ≦ N)
エラーメッセージ: 出力結果が間違っています。
該当のソースコード
Python3
1def find_min_and_max(X, taxi): 2 min_and_max = [5000, 1] 3 for i in range(len(taxi)): 4 if taxi[i][0] > X: 5 if min_and_max[0] > taxi[i][1]: min_and_max[0] = taxi[i][1] 6 if min_and_max[1] < taxi[i][1]: min_and_max[1] = taxi[i][1] 7 8 else: 9 fee = taxi[i][1] + ((X - taxi[i][0]) // taxi[i][2] + 1) * taxi[i][3] 10 if min_and_max[0] > fee: min_and_max[0] = fee 11 if min_and_max[1] < fee: min_and_max[1] = fee 12 13 min_and_max = [str(n) for n in min_and_max] 14 return min_and_max 15 16N, X = [int(n) for n in input().split()] 17taxi = [[ int(n) for n in input().split() ] for _ in range(N)] 18print(' '.join(find_min_and_max(X,taxi)))
#問題がなかった動作チェック
上記の入力例1
入力例2
2 8000
2000 730 280 90
1052 410 237 80
出力例2
2710 2810
入力例3
3 600
600 200 200 400
900 800 400 500
200 200 200 300
出力例3
600 1100
回答1件
あなたの回答
tips
プレビュー