実行時間制限: 5 sec / メモリ制限: 1024 MB
配点 : 600 点
問題文
二次元平面に N 個の点があります。i 番目の点の初期座標は (x_i, y_i) です。それぞれの点はこれから秒速 1 で同時に移動を始めます。点の移動方向は全て x 軸または y 軸に平行です。具体的には i 番目の点の移動方向は文字 d_i によって与えられ、
- d_i =
R
のとき x 軸正方向 - d_i =
L
のとき x 軸負方向 - d_i =
U
のとき y 軸正方向 - d_i =
D
のとき y 軸負方向
です。
あなたは点が移動を開始して以降、任意のタイミングで全ての点の動きを止めることができます (移動開始 0 秒後に止めることも可能です)。 動きを止めたあとの N 点の x 座標のうち最大のものを x_{max}、最小のものを x_{min}、y 座標のうち最大のものを y_{max}、最小のものを y_{min} とします。
(x_{max} - x_{min}) \times (y_{max} - y_{min}) としてありうる値の最小値を求めて出力してください。
制約
- 1 \leq N \leq 10^5
- -10^8 \leq x_i,\ y_i \leq 10^8
- x_i, \ y_i はともに整数である。
- d_i は
R
,L
,U
,D
のいずれかである。
入力
入力は以下の形式で標準入力から与えられる。
N x_1 y_1 d_1 x_2 y_2 d_2 . . . x_N y_N d_N
出力
(x_{max} - x_{min}) \times (y_{max} - y_{min}) としてありうる値の最小値を出力せよ。
ジャッジプログラムの出力との絶対誤差または相対誤差が 10^{-9} 以下のとき正解とみなされる。
入力例 1
2 0 3 D 3 0 L
出力例 1
0
3 秒後に 2 つの点は原点で重なり、このとき題意の値は 0 になります。
入力例 2
5 -7 -10 U 7 -6 U -8 7 D -3 3 D 0 -6 R
出力例 2
97.5
出力が整数にならない場合もあります。
入力例 3
20 6 -10 R -4 -9 U 9 6 D -3 -2 R 0 7 D 4 5 D 10 -10 U -1 -8 U 10 -6 D 8 -5 U 6 4 D 0 3 D 7 9 R 9 -4 R 3 10 D 1 9 U 1 -6 U 9 -8 R 6 7 D 7 -3 D
出力例 3
273
Score : 600 points
Problem Statement
There are N points in a two-dimensional plane. The initial coordinates of the i-th point are (x_i, y_i). Now, each point starts moving at a speed of 1 per second, in a direction parallel to the x- or y- axis. You are given a character d_i that represents the specific direction in which the i-th point moves, as follows:
- If d_i =
R
, the i-th point moves in the positive x direction; - If d_i =
L
, the i-th point moves in the negative x direction; - If d_i =
U
, the i-th point moves in the positive y direction; - If d_i =
D
, the i-th point moves in the negative y direction.
You can stop all the points at some moment of your choice after they start moving (including the moment they start moving). Then, let x_{max} and x_{min} be the maximum and minimum among the x-coordinates of the N points, respectively. Similarly, let y_{max} and y_{min} be the maximum and minimum among the y-coordinates of the N points, respectively.
Find the minimum possible value of (x_{max} - x_{min}) \times (y_{max} - y_{min}) and print it.
Constraints
- 1 \leq N \leq 10^5
- -10^8 \leq x_i,\ y_i \leq 10^8
- x_i and y_i are integers.
- d_i is
R
,L
,U
, orD
.
Input
Input is given from Standard Input in the following format:
N x_1 y_1 d_1 x_2 y_2 d_2 . . . x_N y_N d_N
Output
Print the minimum possible value of (x_{max} - x_{min}) \times (y_{max} - y_{min}).
The output will be considered correct when its absolute or relative error from the judge's output is at most 10^{-9}.
Sample Input 1
2 0 3 D 3 0 L
Sample Output 1
0
After three seconds, the two points will meet at the origin. The value in question will be 0 at that moment.
Sample Input 2
5 -7 -10 U 7 -6 U -8 7 D -3 3 D 0 -6 R
Sample Output 2
97.5
The answer may not be an integer.
Sample Input 3
20 6 -10 R -4 -9 U 9 6 D -3 -2 R 0 7 D 4 5 D 10 -10 U -1 -8 U 10 -6 D 8 -5 U 6 4 D 0 3 D 7 9 R 9 -4 R 3 10 D 1 9 U 1 -6 U 9 -8 R 6 7 D 7 -3 D
Sample Output 3
273