0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

paizaラーニング問題集「【シミュレーション 3】燃費」を解いてみた

Posted at

▼考え方

ポイントになる考え方1.~2.を以下に示します。

1.全長L[m]を以下のように区間に分け、区間ごとに燃費を考えます。

0 --- s_1[m] --- s_2[m] ... --- s_N[m] --- L[m]
 ↑区間    ↑区間    ↑複数の区間  ↑区間

以下、N=2の時を例に説明します。s_1が30[m]、s_2が60[m]のとき、リストsをs=[0,30,60,100]と定義します。

2.出発地点s[i-1]からX[m]走ったあと、まだ一時停止地点s[i]に到達しないのであれば、燃料がF_1[ml]とF_2[ml]の距離が存在します。到達しているのであれば、F_1[ml]の距離のみ存在します。両者を場合分けして区間ごとの燃費の和を計算します。

▼コード

########## 処理0(準備) インプット,リスト定義 ###########

X = int(input())

f_1,f_2 = map(int,input().split())

L,N = map(int,input().split())

# 考え方1.
s = [int(x) for x in input().split()]
s.insert(0,0)
s.append(L)

total = 0
for i in range(1,len(s)):
    # 考え方2.
    if s[i-1] + X <= s[i]:
        total += X*f_1+(s[i]-(s[i-1]+X))*f_2
    else:
        total += (s[i]-s[i-1])*f_1

print(total)
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?