#MN0002. Chọn engine từ log kiểm thử (Engine Log Selection)

    ID: 43 Loại: Thông thường 1000ms 256MiB Tried: 2 Đã chấp nhận: 2 Độ khó: 1 Đăng bởi: Nhãn>Sorting and SearchingCustom comparatorsFundamentalsImplementation techniquesVariables and data types

Chọn engine từ log kiểm thử (Engine Log Selection)

Chọn engine từ log kiểm thử

Phiên bản: Phước Hưng OJ Extended

Đề bài

Một hệ thống kiểm thử đang đánh giá nn engine. Các engine được đánh số từ 11 đến nn theo đúng thứ tự xuất hiện trong dữ liệu vào.

Với engine thứ ii, hệ thống ghi nhận ba thông số:

  • nodesinodes_i: số node mà engine đã xét trong quá trình tìm kiếm;
  • correcticorrect_i: số thế chiến thuật mà engine giải đúng;
  • depthidepth_i: độ sâu tìm kiếm mà engine đã hoàn tất.

Cần chọn ra engine tốt nhất theo thứ tự ưu tiên sau:

  1. Engine có số thế giải đúng correcticorrect_i lớn hơn được ưu tiên.
  2. Nếu hai engine có cùng số thế giải đúng, engine có độ sâu depthidepth_i lớn hơn được ưu tiên.
  3. Nếu cả correcticorrect_i và depthidepth_i đều bằng nhau, engine có số node đã xét nodesinodes_i nhỏ hơn được ưu tiên.
  4. Nếu cả ba thông số trên đều bằng nhau, engine có số thứ tự nhỏ hơn được ưu tiên.

Nói cách khác, việc so sánh luôn được thực hiện lần lượt theo thứ tự:

$$correct\ \text{giảm dần} \rightarrow depth\ \text{giảm dần} \rightarrow nodes\ \text{tăng dần} \rightarrow \text{số thứ tự engine tăng dần}.$$

Hãy xác định engine tốt nhất trong toàn bộ log kiểm thử.

Input

Dòng đầu tiên chứa số nguyên nn — số lượng engine.

Trong nn dòng tiếp theo, dòng thứ ii chứa ba số nguyên:

nodes_i correct_i depth_i

mô tả kết quả kiểm thử của engine thứ ii, trong đó:

  • nodesinodes_i là số node engine thứ ii đã xét;
  • correcticorrect_i là số thế chiến thuật engine thứ ii giải đúng;
  • depthidepth_i là độ sâu tìm kiếm engine thứ ii đã hoàn tất.

Số thứ tự của engine không xuất hiện riêng trong Input. Engine ở dòng dữ liệu đầu tiên được đánh số 11, engine ở dòng dữ liệu thứ hai được đánh số 22, và tương tự cho đến engine thứ nn.

Output

In ra bốn số nguyên:

id correct depth nodes

trong đó:

  • idid là số thứ tự của engine tốt nhất;
  • correctcorrect là số thế chiến thuật mà engine đó giải đúng;
  • depthdepth là độ sâu tìm kiếm mà engine đó đã hoàn tất;
  • nodesnodes là số node mà engine đó đã xét.

Subtask

  • Subtask 1 — 15%: 1≤n≤1001 \le n \le 100; 0≤nodesi,correcti,depthi≤10180 \le nodes_i,correct_i,depth_i \le 10^{18}; các giá trị correcticorrect_i đôi một khác nhau.
  • Subtask 2 — 20%: 1≤n≤50001 \le n \le 5000; 0≤nodesi,correcti,depthi≤10180 \le nodes_i,correct_i,depth_i \le 10^{18}; nếu hai engine có cùng correcticorrect_i thì chúng luôn có depthidepth_i khác nhau.
  • Subtask 3 — 25%: 1≤n≤5⋅1041 \le n \le 5\cdot10^4; 0≤nodesi,correcti,depthi≤10180 \le nodes_i,correct_i,depth_i \le 10^{18}; nếu hai engine có cùng correcticorrect_i và depthidepth_i thì chúng luôn có nodesinodes_i khác nhau.
  • Subtask 4 — 40%: 1≤n≤2⋅1051 \le n \le 2\cdot10^5; 0≤nodesi,correcti,depthi≤10180 \le nodes_i,correct_i,depth_i \le 10^{18}; không có điều kiện bổ sung.

Ví dụ

Ví dụ 1

Input

3
900000 18 10
500000 19 9
2000000 19 11

Output

3 19 11 2000000

Giải thích

Có ba engine:

  • engine 11: nodes=900000nodes=900000, correct=18correct=18, depth=10depth=10;
  • engine 22: nodes=500000nodes=500000, correct=19correct=19, depth=9depth=9;
  • engine 33: nodes=2000000nodes=2000000, correct=19correct=19, depth=11depth=11.

Engine 11 chỉ giải đúng 1818 thế, trong khi engine 22 và engine 33 đều giải đúng 1919 thế, nên engine 11 không được chọn.

Engine 22 và engine 33 có cùng:

correct=19.correct=19.

Do đó xét tiếp độ sâu.

Ta có:

depth2=9,depth3=11.depth_2=9,\qquad depth_3=11.

Vì 11>911>9, engine 33 được ưu tiên.

Số node chỉ được xét khi cả correct và depth đều bằng nhau, vì vậy việc engine 33 xét nhiều node hơn engine 22 không làm thay đổi kết quả.

Engine tốt nhất là engine số 33.


Ví dụ 2

Input

4
1000000 25 12
800000 25 12
600000 24 15
900000 25 11

Output

2 25 12 800000

Giải thích

Engine 11, engine 22 và engine 44 cùng giải đúng 2525 thế, nhiều hơn engine 33 với 2424 thế.

Trong ba engine còn lại:

  • engine 11 có depth=12depth=12;
  • engine 22 có depth=12depth=12;
  • engine 44 có depth=11depth=11.

Do đó engine 44 bị loại vì có độ sâu nhỏ hơn.

Engine 11 và engine 22 cùng có:

correct=25,depth=12.correct=25,\qquad depth=12.

Ta tiếp tục so sánh số node:

nodes1=1000000,nodes2=800000.nodes_1=1000000,\qquad nodes_2=800000.

Vì 800000<1000000800000<1000000, engine 22 được ưu tiên.


Ví dụ 3

Input

4
500000 30 14
500000 30 14
700000 30 14
100000 29 20

Output

1 30 14 500000

Giải thích

Ba engine đầu tiên đều có:

correct=30,correct=30,

nên đều được ưu tiên hơn engine 44, mặc dù engine 44 đạt độ sâu lớn hơn.

Engine 11, engine 22 và engine 33 tiếp tục có cùng:

depth=14.depth=14.

Xét số node:

$$nodes_1=500000,\qquad nodes_2=500000,\qquad nodes_3=700000.$$

Engine 33 kém ưu tiên hơn vì đã xét nhiều node hơn.

Engine 11 và engine 22 vẫn hoàn toàn bằng nhau ở cả ba thông số:

correct=30,depth=14,nodes=500000.correct=30,\qquad depth=14,\qquad nodes=500000.

Khi đó sử dụng tiêu chí cuối cùng: engine có số thứ tự nhỏ hơn được ưu tiên.

Vì:

1<2,1<2,

engine 11 được chọn.


Ví dụ 4

Input

1
123456789012345678 1000000000000000000 999999999999999999

Output

1 1000000000000000000 999999999999999999 123456789012345678

Giải thích

Chỉ có một engine nên engine số 11 chắc chắn là engine tốt nhất.

Ví dụ này cũng cho thấy các thông số có thể rất lớn và có thể đạt tới cỡ 101810^{18}.