問題一覧 > 通常問題

No.2375 watasou and hibit's baseball

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 83
作問者 : watasou1543 / テスター : KowerKoint2010 hibit_at warabi0906 poyon
4 ProblemId : 9673 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2023-07-06 20:19:51

問題文

watasou 君と hibit 君は野球で遊んでいます。
watasou 君がボールを投げて(ピッチャー)、hibit 君がボールを打ちます(バッター)。

watasou 君は NN 個のボールを持っており、ボール i (1iN)i \ (1 \leq i \leq N) は速さ KiK_i で座標 (Xi,Yi)(X_i, Y_i) に投げられます。

  • この問題では 22 次元平面がどこに位置しているかを気にせず解くことができますが、
    イメージとしては「五角柱であるストライクゾーンのピッチャー側の面」を含む 22 次元平面をお考えください

watasou 君は NN 個のボールから 11 個以上のボールを選び、任意の順序で hibit 君に投げようとしています。

  • より厳密には、順列 (1,2,,N)(1, 2, \dots, N) から M (1MN)M \ (1 \leq M \leq N) 個の要素を取り出して好きな順序で並べた整数列 S=(S1,S2,,SM)S = (S_1, S_2, \dots, S_M) に対して、j (1jM)j \ (1 \leq j \leq M) 球目にボール SjS_j を投げます。

watasou 君は hibit 君の特徴を見抜いており、j (1jM)j \ (1 \leq j \leq M) 球目に投げたボールが以下の条件を 11 つ以上満たす時、かつその時に限り、hibit 君がそのボールを打てないことが分かっています。

  • j=1j = 1
  • j=2j = 2 かつ Adist(Sj,Sj1)A \leq dist(S_{j}, S_{j-1})
  • 2jM2 \leq j \leq M かつ BKSjKSj1B \leq |K_{S_j} - K_{S_{j-1}}|
  • 3jM3 \leq j \leq M かつ Adist(Sj,Sj1)+dist(Sj,Sj2)A \leq dist(S_{j}, S_{j-1}) + dist(S_{j}, S_{j-2})

ここで、dist(Si,Sj)=XSiXSj+YSiYSjdist(S_i, S_j) = |X_{S_i} - X_{S_j}| + |Y_{S_i} - Y_{S_j}| です(マンハッタン距離)。

watasou 君は、hibit 君にボールを打たれる回数を 00 回に抑えたまま、なるべく多くのボールを投げたいです。
このとき、watasou 君が最大で何球のボールを投げられるかを求めてください。

入力

N A BN\ A\ B
X1 Y1 K1X_1\ Y_1\ K_1
X2 Y2 K2X_2\ Y_2\ K_2
\vdots
XN YN KNX_N\ Y_N\ K_N
  • 2N142 \leq N \leq 14
  • 1000Xi,Yi1000 (1iN)-1000 \leq X_i,Y_i \leq 1000 \ (1 \leq i \leq N)
  • 1A40001 \leq A \leq 4000
  • 1B1061 \leq B \leq 10^6
  • 1Ki106 (1iN)1 \leq K_i \leq 10^6 \ (1 \leq i \leq N)
  • 入力は全て整数

出力

答えを 11 行に出力してください。

サンプル

サンプル1
入力
3 3 4
2 1 4
2 2 3
4 4 7
出力
3

例えば S=(1,3,2)S = (1, 3, 2) の順に投げることで、hibit 君に一度も打たれることなく 33 球全て投げられます。
このとき、11 球目は j=1j = 1 の条件を、2,32, 3 球目はマンハッタン距離の条件を、それぞれ満たしています。
11 つでも条件を満たせばそのボールを投げられることに注意してください。

サンプル2
入力
2 1 1
0 0 1
0 0 1
出力
1

11 球しか投げられません。

サンプル3
入力
4 40 50
10 30 140
40 55 150
50 60 165
55 60 160
出力
4

提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。