Chung kết Young ICT 2024 - Bảng B

Bộ đề bài

# Bài tập Điểm Thời gian: Giới hạn bộ nhớ
1 Tổng các số chẵn 100 (p) 0.1s 512M
2 Đếm kí tự 100 (p) 1.0s 512M
3 Chọn đoạn 100 (p) 1.0s 512M
4 Dò mìn 100 (p) 1.0s 1G

1. Tổng các số chẵn

Điểm: 100 (p) Thời gian: 0.1s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Cho số nguyên dương \(k\), hãy tìm số nguyên \(n\) nhỏ nhất để tổng các số chẵn không vượt quá \(n\) sẽ lớn hơn \(k\).

Input

  • Gồm một dòng chứa số nguyên \(k\) (\(1 \le k \le 10^{18}\)).

Output

  • Đưa ra số \(n\) nhỏ nhất thoả mãn.

Example

Test 1

Input
11
Output
6

Scoring

  • Subtask \(1\) (\(50\) điểm): \(k \le 10^9\).
  • Subtask \(2\) (\(50\) điểm): \(k \le 10^{18}\).

2. Đếm kí tự

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Chuỗi nén có dạng: \(N = x_1 C_1 x_2 C_2 \dots x_K C_K\) là mô tả chuỗi ban đầu \(S\)\(x_1\) kí tự \(C_1\), sau đó \(x_2\) kí tự \(C_2\), \(\dots\), \(x_K\) kí tự \(C_K\) (\(1 \le x_i \le 10^9\); \(C_i\) là các kí tự tiếng Anh từ A đến Z). Ví dụ: \(N =\) 1A5D2A thì chuỗi ban đầu \(S =\) ADDDDDDAA.

Yêu cầu: Cho chuỗi nén \(N\) và hai số tự nhiên \(L, R\). Hãy đếm xem từ vị trí \(L\) đến vị trí \(R\) của chuỗi kí tự \(S\), kí tự xuất hiện nhiều nhất bao nhiêu lần? (Vị trí trong chuỗi kí tự \(S\) được đánh số từ \(1\) đến \(|S|\), trong đó \(|S|\) là độ dài xâu \(S\)).

Input

  • Dòng đầu tiên chứa chuỗi kí tự \(N\) có độ dài không quá \(10^4\);
  • Dòng thứ hai chứa số nguyên dương \(L\);
  • Dòng thứ ba chứa số nguyên dương \(R\).

  • Dữ liệu đảm bảo \(|S| \le 10^{12}\); \(L \le R \le |S|\).

Output

  • Ghi ra một số tự nhiên là kết quả của bài toán.

Example

Test 1

Input
1A5D2A
6
8
Output
2
Note

Chuỗi kí tự ban đầu \(S =\) ADDDDDDAA.
Chuỗi kí tự từ 6 đến 8 là DAA.
Vậy kí tự xuất hiện nhiều nhất là kí tự A, xuất hiện 2 lần.

Scoring

  • \(40\%\) số test tương ứng với \(40\%\) số điểm có điều kiện: \(x_i < 10\).
  • \(30\%\) số test khác tương ứng với \(30\%\) số điểm có điều kiện: \(|S| \le 10^4\).
  • \(30\%\) số test còn lại tương ứng với \(30\%\) số điểm không có điều kiện gì thêm.

3. Chọn đoạn

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Bạn tham gia vào một cuộc thi và đã phải đấu \(n\) trận, mỗi trận đấu nếu thắng bạn nhận được \(1\) điểm, ngược lại nếu thua bạn sẽ mất đi \(-1\) điểm. Tuy nhiên, để đối mặt với sự dò hỏi của huấn luyện viên, bạn quyết định bịa ra rằng chỉ có một vài trận đấu là bạn thật sự nghiêm túc thi đấu. Cụ thể, bạn sẽ chọn ra không quá \(k\) đoạn \([l_1, r_1], [l_2, r_2], \dots, [l_x, r_x]\) (với \(0 \le x \le k\)) sao cho \(1 \le l_1 \le r_1 < l_2 \le r_2 < \dots < l_x \le r_x \le n\) và nói rằng bạn chỉ nghiêm túc trong những trận đấu có chỉ số thuộc một trong các đoạn trên. Mức độ hài lòng của huấn luyện viên phụ thuộc vào số điểm bạn nhận được trong các trận đấu mà bạn coi là nghiêm túc. Hãy tìm cách chọn ra tối đa \(k\) đoạn sao cho tổng số điểm của bạn là lớn nhất.

Input

  • Dòng đầu tiên chứa hai số nguyên \(n, k\) (\(1 \le k \le n \le 2\cdot 10^5\)), tương ứng là số trận đấu và số lượng đoạn tối đa bạn sẽ chọn.
  • Dòng thứ hai chứa một xâu ký tự gồm \(n\) ký tự, ký tự thứ \(i\) tương ứng là trạng thái thắng hay thua của bạn ở ván đấu thứ \(i\), là W nếu bạn thắng, và L nếu bạn thua.

Output

  • Ghi kết quả trên một dòng, là tổng số điểm lớn nhất bạn chọn được.

Example

Test 1

Input
4 1
WLWW
Output
2

Scoring

  • Subtask \(1\) (\(15\) điểm): \(k = 1\);
  • Subtask \(2\) (\(15\) điểm): \(k = 2\);
  • Subtask \(3\) (\(20\) điểm): \(n \le 100\);
  • Subtask \(4\) (\(20\) điểm): \(n \le 500\);
  • Subtask \(5\) (\(10\) điểm): \(n \le 2000\);
  • Subtask \(6\) (\(10\) điểm): \(n \le 10^4\);
  • Subtask \(7\) (\(10\) điểm): không có ràng buộc gì thêm.

4. Dò mìn

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 1G Input: bàn phím Output: màn hình

Trên bảng \(A\) kích thước \(m \times n\), các hàng được đánh số từ \(1\) đến \(m\) (từ trên xuống dưới), các cột được đánh số từ \(1\) đến \(n\) (từ trái qua phải). Ô nằm ở hàng \(x\) (\(1 \le x \le m\)) cột \(y\) (\(1 \le y \le n\)) là ô \((x, y)\). Trên mỗi ô \((x, y)\) của bảng \(A\) có thể có một quả mìn hoặc không có quả mìn nào. Từ bảng \(A\) xây dựng bảng \(B\) có cùng kích thước \(m \times n\), trong đó, ô \((x, y)\) của bảng \(B\) cho thông tin về số lượng ô \((u, v)\) của bảng \(A\) có chứa mìn với \(|x - u| + |y - v| \le 2\).

Yêu cầu: Cho bảng \(B\), hãy tìm một trạng thái mìn của bảng \(A\) thỏa mãn.

Input

  • Dòng đầu chứa hai số nguyên \(m, n\);
  • \(m\) dòng sau, mỗi dòng chứa \(n\) số, số nằm trên dòng \(x\) cột \(y\) là số cho biết thông tin về số lượng ô \((u, v)\) có chứa mìn mà \(|x - u| + |y - v| \le 2\).

Output

  • Ghi ra trên \(m\) dòng, mỗi dòng chứa \(n\) số, số thứ \(y\) trên dòng \(x\) bằng \(0\) (hoặc \(1\)) cho biết ô \((x, y)\) không có mìn (hoặc có mìn).

Example

Test 1

Input
4 4
2 3 2 2
2 3 3 2
3 3 2 1
3 2 2 1
Output
0 0 1 1
1 0 0 0
0 0 0 0
1 1 0 0

Scoring

  • Subtask \(1\) (\(50\) điểm): \(m, n \le 4\).
  • Subtask \(2\) (\(25\) điểm): \(m, n \le 8\).
  • Subtask \(3\) (\(25\) điểm): \(m, n \le 16\).