| # | Bài tập | Điểm | Thời gian: | Giới hạn bộ nhớ |
|---|---|---|---|---|
| 1 | tree | 100 (p) | 1.0s | 256M |
| 2 | substr | 100 (p) | 1.0s | 256M |
| 3 | magsum | 100 (p) | 1.0s | 256M |
| 4 | rotegame | 100 (p) | 1.0s | 256M |
Alice có một khu đất trống được chia làm \(m \times n\) mảnh đất hình vuông. Các hàng mảnh đất hình vuông được đánh số từ \(1\) đến \(m\) từ trên xuống dưới, các cột mảnh đất hình vuông được đánh số từ \(1\) đến \(n\) từ trái sang phải. Mảnh đất hình vuông nằm giao giữa hàng \(i\) \((1 \leq i \leq m)\) và cột \(j\) \((1 \leq j \leq m)\) gọi là ô \((i, j)\).
Alice dự định sẽ đi lần lượt từng ô theo đường xoắn ốc cùng chiều kim đồng hồ bắt đầu từ ô \((1, 1)\) để trồng cây trên các mảnh đất hình vuông.
Ví dụ, với khu đất \(4 \times 5\) thì thứ tự các ô Alice đi như hình dưới.

Qua khảo sát, Alice biết rằng có \(k\) ô \((x_{1}, y_{1}), (x_{2}, y_{2}), \ldots, (x_{k}, y_{k})\) không thể trồng cây. Khi đó, nếu Alice đi vào các ô này Alice sẽ bỏ qua và không trồng cây ở đó. Là một người yêu thích toán học, Alice mong muốn mỗi ô sẽ được trồng một số cây đều là số nguyên tố.
Cụ thể, khi đi theo đường xoắn ốc như dự định, nếu vào ô là ô \((u, v)\) trồng được cây và ô này là ô thứ \(t\) trồng được cây (tính từ lúc bắt đầu xuất phát) thì ô \((u, v)\) sẽ được trồng số lượng cây là số nguyên tố lớn thứ \(t\).
Ví dụ, nếu khu đất \(4 \times 5\) có \(7\) ô không thể trồng được cây là \((1, 2), (2, 3), (3, 4), (4, 5), (2, 1), (3, 2), (4, 3)\) thì số cây được trồng tại các ô như hình dưới.

Sau khi trồng cây xong, Alice muốn tính số lượng cây nằm trong hình chữ nhật có ô trái trên là ô \((u_{1}, v_{1})\) và ô phải dưới là ô \((u_{2}, v_{2})\). Hãy giúp Alice trả lời câu hỏi như vậy.
Test 1
4 5 7 2
1 2
2 3
3 4
4 5
2 1
3 2
4 3
1 1 2 2
3 2 4 3
33
60
Xâu \(s\) được gọi là xâu con của xâu \(x\) nếu ta có thể nhận được \(s\) từ \(x\) bằng cách giữ nguyên hoặc xóa đi một số kí tự. Ví dụ, xâu bb là xâu con của xâu bab, nhưng xâu aa thì không phải là xâu con của xâu bab.
Cho hai xâu \(x\) và \(y\), tiến hành liệt kê (theo thứ tự từ điển) tất cả các xâu có độ dài \(n\) là xâu con của xâu \(x\) nhưng không phải là xâu con của xâu \(y\).
Ví dụ, \(x =\) abab; \(y =\) abb và \(n = 2\), có hai xâu độ dài bằng \(2\) là xâu con của xâu \(x\) nhưng không phải là xâu con của xâu \(y\) là: aa, ba.
Yêu cầu: Cho hai xâu \(x, y\) và \(m\) xâu \(s_{1}, s_{2}, \ldots, s_{m}\) có có cùng độ dài \(n\), hãy tìm thứ tự từ điển của các xâu \(s_{1}, s_{2}, \ldots, s_{m}\) khi liệt kê (theo thứ tự từ điển) tất cả các xâu có độ dài bằng \(n\) là xâu con của xâu \(x\) nhưng không phải là xâu con của xâu \(y\).
Các xâu \(x, y, s_{1}, s_{2}, \ldots, s_{m}\) có độ dài không quá \(200\) và chỉ gồm các kí tự a đến z.
Test 1
3 2 100
abab
abb
aa
ab
ba
1
-1
2
Cho dãy số \(A\) gồm \(N\) phần tử \(a_{1}, a_{2}, \ldots, a_{N}\). Hãy đếm số cặp \(L, R\) \((1 \leq L \leq R \leq N)\) sao cho:
Test 1
3
2 2 4
4
Các cặp \(L, R\) thoả mãn:
\(1, 1\)
\(2, 2\)
\(3, 3\)
\(2, 3\)
Alice có bảng số \(A\) kích thước \(3 \times 4\). Các hàng được đánh số từ \(1\) đến \(3\) từ trên xuống dưới, các cột được đánh số từ \(1\) đến \(4\) từ trái sang phải. Ô nằm giao ở hàng \(i\) \((1 \leq i \leq 3)\) và cột \(j\) \((1 \leq j \leq 4)\) được gọi là ô \((i, j)\) và ban đầu chứa số \(a_{i, j}\). Alice đã thực hiện liên tục \(k\) phép biến đổi, mỗi phép thuộc một trong hai loại dưới đây để nhận được bảng số \(B\).


Yêu cầu: Alice đã mất thông tin dãy phép biến đổi, Alice chỉ còn ghi nhớ thông tin bảng \(A\) và \(B\). Hãy giúp Alice tìm ra một dãy các phép biến đổi để đưa bảng \(A\) về bảng \(B\). Chú ý rằng, dãy biến đổi bất kì, miễn là biến đổi được từ bảng \(A\) về bảng \(B\).
Test 1
9 9 9 9
1 2 3 4
5 6 7 8
1 9 9 4
5 9 9 8
6 2 7 3
2
1 2