#P50465. 「JOI 2017 Final」准高速电车

「JOI 2017 Final」准高速电车

問題文

JOI 国の唯一の鉄道会社であるJOI 鉄道には 1 本の線路に沿って NN 個の駅があり,順に 1,1, 2,2, ,\ldots, NN の番号が付いている.現在,運行されている電車の種別は,急行と普通の2 種類である.

普通電車はすべての駅に停車し,各 ii (1i<N1 \leq i < N) について,駅 ii と駅 i+1i + 1 の間を AA 分で走行する. 急行電車は MM 個の駅 S1,S2,...,SMS_1, S_2, ..., S_M (1=S1<S2<...<SM=N1 = S_1 < S_2 < ... < S_M = N) に停車する.また,各 ii (1i<N1 \leq i < N) について,駅 ii と駅 i+1i + 1 の間を BB 分で走行する.

JOI 鉄道は電車の種別として準急電車を新設することにした.準急電車は各 ii (1i<N1 \leq i < N) について,駅 ii と駅 i+1i + 1 の間を CC 分で走行する.準急電車の停車駅は決まっていないが,以下の条件を満たすようにすることは決まっている.

準急電車はすべての急行停車駅に停車する. 準急電車はちょうど KK 個の駅に停車する.

JOI 鉄道は,駅 11 から 11 種類以上の電車を使って移動するときの乗車時間の合計が TT 分以内となるような,駅 11 以外の駅の個数が最大となるように準急電車の停車駅を決めることにした.ここで,乗車時間には停車時間は含めないものとする.

ただし,JOI 鉄道を用いて駅 11 から他の駅まで移動するときは,駅の番号が大きくなる方向の電車しか用いることができない.また,駅 ii (2iN12 \leq i \leq N - 1) に複数の種別の電車が停車するとき,その駅では停車するすべての電車に乗り換えることができる.

準急電車の停車駅をうまく決めたときの,駅 11 からの乗車時間の合計が TT 分以内となるような,駅 11 以外の駅の個数の最大値を求めたい.

課題

JOI 鉄道の駅の個数,急行電車の停車駅,電車の速度の情報,乗車時間の条件が与えられたとき,乗車時間の条件を満たす駅の個数の最大値を求めるプログラムを作成せよ.

入力

標準入力から以下の入力を読み込め.

1 行目には,3 個の整数 N,M,KN, M, K が空白を区切りとして書かれている.これらは,JOI 鉄道に駅が NN 個あり,急行電車は MM 個の駅に停車し,準急電車は KK 個の駅に停車することを表す.

2 行目には,3 個の整数 A,B,CA, B, C が空白を区切りとして書かれている.これらは,普通電車,急行電車,準急電車が隣り合う駅の間を走行するのにかかる時間がそれぞれ AA 分,BB 分,CC 分であることを表す.

3 行目には,整数 TT が書かれている.これは,駅1 からの乗車時間の合計が TT 分以内となる駅の個数を最大化したいことを表す.

続く MM 行のうちの ii 行目 (1iM1 \leq i \leq M) には,整数 SiS_i が書かれている.これは,急行電車が駅 SiS_i に停車することを表す.

出力

標準出力に,乗車時間の条件を満たす駅の個数の最大値を 1 行で出力せよ.

例 1

10 3 5
10 3 5
30
1
6
10
8

この入力例では,JOI 鉄道には 10 個の駅があり,急行電車は 3 個の駅 1, 6, 10 に停車する.準急電車を駅 1, 5, 6, 8, 10 に停車させると,駅 2, 3, ... , 10 のうち駅 9 を除く8 個の駅に,駅 1 から 30 分以内の乗車時間で移動できる.

準急電車の停車駅を上記のように決めたときの,いくつかの ii についての,駅1 から駅 ii まで移動する際の乗車時間と,そのときの移動方法を示す.

  • 駅 1 から駅 3 へは,普通電車だけを用いて 20 分の乗車時間で移動できる.
  • 駅 1 から駅 7 へは,駅 1 から駅 6 まで急行電車で移動し,駅 6 で普通電車に乗り換えることで 25 分の乗車時間で移動できる.
  • 駅 1 から駅 8 へは,駅 1 から駅 6 まで急行電車で移動し,駅 6 で準急電車に乗り換えることで 25 分の乗車時間で移動できる.
  • 駅 1 から駅 9 へは,駅 1 から駅 6 まで急行電車で移動し,駅 6 から駅 8 まで準急電車で移動し,駅 8 から駅 9 まで普通電車で移動することで 35 分の乗車時間で移動できる.
10 3 5
10 3 5
25
1
6
10
7
90 10 12
100000 1000 10000
10000
1
10
20
30
40
50
60
70
80
90
2
12 3 4
10 1 2
30
1
11
12
8

この入力例は,小課題 1 の条件を満たさない.

300 8 16
345678901 123456789 234567890
12345678901
1
10
77
82
137
210
297
300
72

この入力例は,小課題 1 の条件を満たさない.

1000000000 2 3000
1000000000 1 2
1000000000
1
1000000000
3000

この入力例は,小課題 1 および小課題 2 の条件を満たさない.

制限

すべての入力データは以下の条件を満たす.

  • 2N1092 \leq N \leq 10^9
  • 2MK30002 \leq M \leq K \leq 3 000
  • KNK \leq N
  • 1B<C<A1091 \leq B < C < A \leq 10^9
  • 1T10181 \leq T \leq 10^{18}
  • 1=S1<S2<...<SM=N1 = S_1 < S_2 < ... < S_M = N

小課題

小課題 1 [18 点] \quad N300,N ≦ 300, KM=2,K − M = 2, A106,A ≦ 10^6, T109T ≦ 10^9 を満たす.
小課題 2 [30 点] \quad N300N ≦ 300 を満たす.
小課題 3 [52 点] \quad 追加の制限はない.