You are on page 1of 4

Mã hóa SUBSTRG.

*
Anhia, em gái của Andrei thường xuyên chat với Victor. Anhia không muốn ai đọc thông tin của
mình nên mã hóa các thông báo bằng cách thay thế ký tự: mỗi ký tự trong thông tin ban đầu
được thay bằng một ký tự nào đó. Các ký tự giống nhau được thay cùng bằng một ký tự trong
kết quả mã hóa. Các ký tự khác nhau sẽ được thay bằng các ký tự khác nhau.
Ví dụ nếu luật mã hóa là e->a, l->b, o->w, v->c thì từ love biến đổi thành tù bwca.
Mới đây, Andrei thu được một thông báo t của em gái và tò mò muốn biết, trong thông báo đó
có văn bản p hay không. Andrei cần xác định những vị trí i mà các ký tự ti : ti + length(p) − 1
có thể là một cách mã hóa văn bản p. Những vị trí này gọi là vị trí tiềm năng.

Yêu cầu:

• Cho hai văn bản t và p khác rỗng. Các kí tự của xâu có trong bảng mã ASCII từ vị trí 33
đến 133. Hãy tìm những vị trí tiềm năng.

Dữ liệu vào

• Dòng đầu chứa văn bản t có độ dài không quá 200000 kí tự.

• Dòng hai chứa văn bản p có độ dài không quá độ dài văn bản t.

Kết quả ra

• Dòng đầu tiên ghi số k số lượng kí tự có vị trí tiềm năng.

• Dòng tiếp theo ghi k là vị trí các kí tự tiềm năng theo thứ tự tăng dần.

Sample Input Sample Output


abacabadabacabdb 7
aba 1 3 5 7 9 11 14

Ràng buộc

• Subtask 1: có 50% test có |t| không quá 1000 kí tự.

• Subtask 2: có 50% test điều kiện như đề ra.


Fast Search FS.*
Cho dãy số nguyên a1 , a2 , ..., an . Bạn hãy viết chương trình trả lời Q câu hỏi truy vấn sau How
many number’s values are between l and r ?.

Dữ liệu vào

• Dòng đầu tiên ghi số N số lượng phần tử của dãy (1 ≤ N ≤ 105 ).

• Dòng tiếp theo ghi dãy số nguyên a1 , a2 , ..., an . Trong đó ai ≤ 109 .

• Dòng tiếp theo ghi số Q số lượng câu truy vấn (Q ≤ 105 ).

• Q dòng tiếp theo mỗi dòng ghi hai số l, r, trong đó 1 ≤ l ≤ r ≤ N .

Kết quả vào

• Ghi vào Q số tương ứng với Q truy vấn cá giá trị cách nhau một dấu cách.

Sample Input Sample Output


5 5 2 2 0
10 1 10 3 4
4
1 10
2 9
3 4
2 2
Cherry and Squares CAS.*
Cherry có ma trận gồm có N dòng và M cột. Ma trân đó chứa các chữ cái in thường trong bảng
mã ASCII.
Có Q truy vấn. Với mỗi truy vấn bao gồm bốn số nguyên x1 , y1 , x2 , y2 là tọa độ đỉnh phía trên
bên trái và phía dưới góc phải của hình chữ nhật nằm trong ma trân của Cherry đã cho. Bạn hãy
tìm hình vuông ( Squares ) lớn nhất nằm trên hình chữ nhật đã cho trong mỗi truy vấn thõa
mãn hai điều kiện sau:

• Từ trái sang phải theo hàng các kí tự nằm trong hình vuông có thứ tự từ điển tăng dần.

• Từ trên xuống dưới theo cột các kí tự có thứ tự từ điển tăng dần.

Yêu cầu: Bạn hãy viết chương trình tìm hình vuông có diện tích lớn nhất thõa mãn
hai điều kiện trên trong mỗi truy vấn.

Dữ liệu vào

• Dòng 1 ghi số nguyên dương N và M .

• N dòng tiếp theo mỗi dòng ghi M kí tự là chữ cái in thường trong bảng mã ASCII.

• Dòng tiếp theo ghi số Q số lượng câu truy vấn.

• Q dòng tiếp theo mỗi dòng ghi bốn số nguyên x1 , y1 , x2 , y2 .

Kết quả ra:

• Ghi Q dòng mỗi dòng tương ứng với câu trả lời cho mỗi truy vấn.

Ràng buộc

• 1 ≤ N, M ≤ 500.

• 1 ≤ Q ≤ 105 .

• 1 ≤ x1 ≤ x2 ≤ N .

• ’1 <= y_1 <= y_2 <= M’.

• Subtask 1: 30% test có N, M ≤ 10, Q = 1.

• Subtask 2: 40% test có N, M ≤ 100, Q ≤ 10.

• Subtask 3: 40% test không ràng buộc gì thêm.


Sample Input Sample Output
4 4 2
aaaa 1
bbaa 2
cdef
wxyz
3
1 1 4 4
1 2 2 3
3 1 4 4

Giải thích:

• Truy vấn 1: hình vuông (1,1)->(2, 2).

• Truy vấn 2: hình vuông (2,2) -> (2, 2) hoặc (1, 2)->(1,2), ...

• Truy vấn 3: hình vuông (3,2) -> (4,3).

You might also like