Bạn được cho \(n\) từ \(s_{1}, s_{2}, ..., s_{n}\), \(s_{i}\) gồm các chữ cái tiếng Anh viết thường, các từ được ngăn cách nhau bởi dấu cách. Bạn hãy in ra từ viết tắt của \(n\) từ này, từ viết tắt được tạo thành bằng cách viết hoa liên tiếp các chữ cái đầu tiên của mỗi từ.
Test 1
3
nguyen duc thuan
NDT
Test 2
3
flower on stone
FOS
Chúng ta sẽ gọi một chuỗi có thể nhận được bằng cách nối hai chuỗi bằng nhau là một chuỗi nhân đôi. Ví dụ: xyzxyz và aaaaaa là chuỗi nhân đôi, trong khi ababab và xyzxy thì không là chuỗi nhân đôi.
Cho một chuỗi \(S\) bao gồm các chữ cái tiếng Anh viết thường. Tìm độ dài của chuỗi nhân đôi dài nhất có thể thu được bằng cách xóa một hoặc một vài ký tự từ cuối \(S\). Dữ liệu đảm bảo rằng luôn tạo được một chuỗi nhân đôi không rỗng.
Test 1
fosfosndt
6
Một con ếch có thể nhảy theo bước với một trong hai kiểu sau: Bước ngắn có độ dài \(1\), bước dài có độ dài \(b\).
Con ếch muốn nhảy về phía trước theo đường thẳng, sao cho sau đúng \(t\) bước nhảy con ếch đi được quãng đường độ dài \(d\).
Hỏi con ếch có thể làm được điều này hay không.
Test 1
10 6 3
Possible
Test 2
10 5 3
Impossible
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ó:
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.
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ị.
Test 1
5 5
3 1 a
3 2 b
1 4 x
4 5 y
5 2 x
3
Test 2
5 5
3 1 a
3 2 b
1 4 x
4 5 y
5 2 z
-1
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.
Cho \(N\) điểm, đếm số cặp điểm thỏa mãn tồn tại một hình chữ nhật có cạnh song song với trục tọa độ
mà chứa cả hai điểm (có thể nằm trên cạnh) và không chứa bất kì điểm nào khác trong các điểm đã cho.
Test 1
6
-1 -1
1 1
1 0
-1 0
-2 0
2 2
5