INTERSECT
Cho n hình chữ nhật kích thước khác nhau được đại diện bằng góc trái dưới và góc phải trên. Các bạn hãy kiểm tra có ít nhất một cặp hình chữ nhật cắt nhau không. Một cặp hình chữ nhật cắt nhau khi tồn tại ít nhất một điểm của hình chữ nhật này nằm hoàn toàn trong hình chữ nhật còn lại (không tính các điểm nằm trên cạnh) và chúng không lồng nhau.
Input
- Dòng đầu tiên chứ số nguyên \(n\) (\(1 \leq n \leq 10^{5}\)).
- N dòng tiếp theo, mỗi dòng chứ 4 số nguyên \(x1\), \(y1\), \(x2\), \(y2\) lần lượt tọa độ của góc trái dưới và góc phải trên của hình chữ nhật (\(-10^{9} \leq x1, y1, x2, y2 \leq 10^{9}\), \(x1 < x2, y1 < y2\)).
Output
- Gồm một dòng duy nhất: chứa số 1 (có ít nhất 1 cặp hình chữ nhật giao nhau) hoặc 0 (không chứa bất kì một cặp hình chữ nhật nào giao nhau).
Example
Test 1
Input
2
0 0 2 2
2 2 3 4
Output
0
Test 1
Input
2
1 1 3 3
2 2 10 4
Output
1
Xe đồ chơi
Nhân dịp sinh nhật, bé H được bố mẹ tặng [xe đồ chơi][1]. Khi kéo lùi xe này về sau rồi thả tay ra, xe sẽ chạy về phía trước. Với mỗi cm được kéo về đằng sau, xe sẽ tiến về phía trước \(a\) cm. Do cấu tạo của xe nên bé chỉ có thể kéo lùi tối đa \(b\) cm trước khi thả tay. Một đường đua đơn giản đã được đặt sẵn ngoài sân: một đoạn thẳng dài \(n\) cm.
Bé H ngồi loay hoay, chơi cả buổi chiều và thắc mắc rằng cần phải kéo xe ít nhất bao nhiêu lần để xe chạy vượt qua (hoặc chạm) vạch đích? Em hãy trả lời câu hỏi này!
Input
- Một dòng duy nhất chứa ba số nguyên \(a\), \(b\) và \(n\) (\(2 \leq a \leq 100\), \(1 \leq b \leq 100\), \(1 \leq n \leq 1000\)).
Output
- Một dòng duy nhất chứa một số nguyên câu trả lời.
Example
Test 1
Input
6 1 2
Output
1
Note
bé H chỉ cần kéo xe lùi về \(0.4\) cm thì xe sẽ tiến về phía trước \(2.4\) cm và chạm vào vạch đích
Test 1
Input
2 1 3
Output
3
Note
bé H phải kéo xe lùi về hết cỡ (\(1\) cm). Sau 3 lần kéo như vậy, xe sẽ chạy tới đích.
Đong dầu
Mẹ nhờ em đong dầu.
Coi như số lượng dầu mẹ em đang có là vô hạn. Em cần đong \(n\) lít dầu vào can dầu lớn, tuy nhiên trong nhà chỉ có 2 loại can là loại can \(2\) lít và can \(3\) lít. Vì nhà giàu nên em muốn bao nhiêu can thuộc 2 loại trên đều có đủ. Em có thể thực hiện các thao tác sau:
- Múc đầy một can \(2\ell\) hoặc \(3\ell\) để đưa thêm dầu từ nguồn vào can lớn
- Múc đầy một can \(2\ell\) hoặc \(3\ell\) để rút bớt dầu từ can lớn về lại nguồn.
Người ta bảo "người lười thường rất thông minh". Em hãy tính xem số thao tác tối thiểu cần phải dùng để đong được đúng \(n\) lít dầu vào can lớn
Input
- Một dòng duy nhất chứa một số nguyên dương \(n\) \((n \le 10^9)\)
Output
- Số lượng can ít nhất em cần dùng để đong được \(n\) lít dầu.
Subtask
- Subtask \(1\) (\(60\%\) số điểm): \(n \le 10^3\)
- Subtask \(2\) (\(40\%\) số điểm): Không có giới hạn gì thêm.
Sample
Test 1
Input
5
Output
2
Note
Dùng một can \(2\ell\) và một can \(3\ell\).
PALINDROME PATH
Cho một đồ thị vô hướng gồm \(n\) đỉnh và \(m\) cạnh. Các đỉnh được đánh số từ \(1\) đến \(n\). Các cạnh được đánh số từ \(1\) đến \(m\). Cạnh thứ \(i\) nối hai đỉnh \(a_i\) và \(b_i\), trên cạnh này có ghi một kí tự \(c_i\).
Một ''đường đi'' trên đồ thị có thể được biểu diễn bởi dãy số \(v_0, e_1, v_1, e_2, v_2, \ldots, v_{k-1}, e_k, v_k\), trong đó với mọi \(1 \leq i \leq k\), ta luôn có:
- \(1 \leq v_{i-1}, v_i \leq n\),
- \(1 \leq e_i \leq m\),
- Cạnh thứ \(e_i\) có hai đỉnh kề là \(v_{i-1}\) và \(v_i\).
Khi đó, đường đi này xuất phát ở đỉnh \(v_0\) và kết thúc ở đỉnh \(v_k\). Chú ý rằng các đỉnh \(v_0, v_1, \ldots, v_k\) hay các cạnh \(e_1, e_2, \ldots, e_k\) không nhất thiết phải đôi một phân biệt. Nói cách khác, một đường đi có thể đi qua một đỉnh hay một cạnh nhiều hơn một lần. Do mỗi cạnh của đồ thị có chứa một kí tự, ta viết lần lượt các chữ cái có trên các cạnh theo thứ tự của đường đi, và tạo ra xâu kí tự \(S = c_{e_1} c_{e_2} \ldots c_{e_k}\). Xâu kí tự này được gọi là ''xâu biểu diễn'' đường đi.
Cho đồ thị ở trên, bạn cần tìm ra đường đi ngắn nhất (chứa ít cạnh nhất) từ đỉnh \(1\) tới đỉnh \(2\), sao cho xâu biểu diễn của đường đi này là một xâu đối xứng.
Nhắc lại, xâu đối xứng là xâu kí tự mà khi đọc ngược hay xuôi đều như nhau. Ví dụ, a, ahiha hay abba là các xâu đối xứng; nhưng na, ahihi hay huhu thì không.
Input
-
Dòng đầu tiên chứa hai số nguyên \(n\) và \(m\) \((2 \leq n \leq 20, 2 \leq 2 \cdot m \leq n \cdot (n - 1))\) lần lượt là số đỉnh và số cạnh của đồ thị.
-
Trong \(m\) dòng còn lại, dòng thứ \(i\) chứa hai số nguyên \(a_i\), \(b_i\) \((1 \leq a_i, b_i \leq n)\) và một chữ cái Lattin in thường \(c_i\) thể hiện cạnh thứ \(i\) của đồ thị.
Output
- In ra một số nguyên duy nhất là độ dài (tính theo số cạnh) của đường đi ngắn nhất từ đỉnh \(1\) đến đỉnh \(2\) có xâu biểu diễn là xâu đối xứng. Nếu không tồn tại đường đi như vậy, in ra \(-1\).
Example
Test 1
Input
5 5
3 1 a
3 2 b
1 4 x
4 5 y
5 2 x
Output
3
Test 2
Input
5 5
3 1 a
3 2 b
1 4 x
4 5 y
5 2 z
Output
-1
Note
Giải thích: Trong ví dụ thứ nhất, đường đi ngắn nhất từ \(1\) đến \(2\) có dạng \(1 \rightarrow 3 \rightarrow 2\). Tuy nhiên, xâu biểu diễn của đường đi này là ab, không phải xâu đối xứng. Đường đi chính xác cần tìm trong ví dụ này là \(1 \rightarrow 4 \rightarrow 5 \rightarrow 2\) với xâu biểu diễn là xyx.