26.B1. CTDL> bài Vượt Sông
Vượt Sông
Trong một chuyến phiêu lưu mới, FullHouse Dev đứng trước một con sông với dòng chảy xiết. Để đến được đích, họ cần vượt qua con sông này. May mắn thay, trên sông có một số tảng đá mà họ có thể sử dụng để di chuyển. Với tinh thần không lùi bước, FullHouse Dev bắt đầu tính toán cách vượt sông an toàn nhất.
Bài toán
Con sông nằm trên trục \(X\) và được giới hạn bởi các tọa độ \(Y\). Mỗi tảng đá được xác định bởi tâm và bán kính của nó. FullHouse Dev hiện đang đứng ở bờ sông. Họ không thể nhảy giữa các tảng đá nhưng có thể di chuyển từ tảng đá này sang tảng đá khác nếu chúng có điểm giao nhau. Nhiệm vụ là xác định xem liệu có thể vượt sông bằng cách sử dụng các tảng đá hay không, và nếu có thì cần ít nhất bao nhiêu tảng đá.
INPUT FORMAT:
- Dòng đầu tiên chứa số nguyên \(T\) - số lượng test case
- Với mỗi test case:
- Dòng đầu tiên chứa số nguyên \(N\) - số lượng tảng đá
- \(N\) dòng tiếp theo, mỗi dòng chứa ba số nguyên \(x_i\), \(y_i\), \(r_i\) trong đó \((x_i, y_i)\) là tọa độ tâm của tảng đá và \(r_i\) là bán kính của nó
- Dòng cuối cùng chứa hai số nguyên \(Y_1\) và \(Y_2\) - giới hạn trên và dưới của con sông
OUTPUT FORMAT:
- Với mỗi test case, in ra số lượng tảng đá tối thiểu cần dùng để vượt sông. Nếu không thể vượt sông, in ra \(-1\).
Ràng buộc:
- \(1 \leq T \leq 100\)
- \(1 \leq N \leq 1000\)
- \(-1000 \leq x_i, y_i \leq 1000\)
- \(1 \leq r_i \leq 1000\)
- \(-1000 \leq Y_1, Y_2 \leq 1000\)
Ví dụ
INPUT
1
3
1 1 2
1 2 1
3 4 1
3 0
OUTPUT
1
Giải thích
Từ bờ sông, FullHouse Dev có thể bước lên tảng đá đầu tiên. Sau đó, họ có thể vượt sông trực tiếp hoặc di chuyển đến tảng đá thứ hai rồi vượt sông. Lưu ý rằng họ không thể sử dụng tảng đá thứ ba vì nó nằm ngoài tầm với từ các tảng đá khác.
Comments