# BN01 ## A. Tenzing and Balls Tenzing có $n$ quả bóng trên một đường thẳng. Từ trái qua phải, quả bóng $i$ có màu $a_i$. Tenzing có thể thực hiện thao tác sau nhiều lần: - Chọn $i$ và $j$ sao cho $1 \le i < j \le n$ và $a_i = a_j$, - Xóa $a_i, a_{i + 1}, ..., a_j$ khỏi dãy (và giảm chỉ số của các quả bóng bên phải quả bóng $j$ đi $j - i + 1$). Tenzing muốn biết số lượng bóng lớn nhất anh có thể xóa là bao nhiêu. ### Input Dòng đầu tiên chứa $t$ $(1 \le t \le 10^3)$ - số test. Với mỗi test: Dòng đầu chứa $n$ $(1 \le n \le 2 . 10^5)$ - số quả bóng. Dòng tiếp theo chứa $n$ số $a_1, a_2, ..., a_n$ $(1 \le a_i \le n)$ - màu của các quả bóng. Đảm bảo rằng tổng $n$ của tất cả các test không vượt quá $2 . 10^5$. ### Output Với mỗi test, in ra số lượng quả bóng lớn nhất mà Tenzing có thể xóa được. --- ## B. Tennis Game Petya và Gena thích chơi bóng bàn. Một trận đấu được diễn ra theo các quy tắc sau: - Một **trận đấu** gồm nhiều **hiệp** - Một **hiệp** gồm nhiều lần **giao bóng** - Một lần **giao bóng** được thắng bởi một người chơi, người này nhận được $1$ điểm. - Ngay khi một người chơi ghi được $t$ điểm, anh ta sẽ thắng **hiệp** đó; Sau đó **hiệp** tiếp theo bắt đầu và điểm của cả hai người chơi được đặt về $0$. - Ngay khi một người chơi thắng $s$ **hiệp**, anh ta sẽ thắng **trận đấu** và **trận đấu** kết thúc. Để thêm phần thú vị, Petya và Gena chọn $s$ và $t$ trước **trận đấu**. Bên cạnh đó họ cũng ghi lại diễn biến **trận đấu**: nghĩa là với mỗi lần **giao bóng**, họ ghi lại người chiến thắng. Chú ý, **hiệp đấu** sẽ kết thúc ngay khi một trong hai người chơi ghi được $t$ điểm, **trận đấu** sẽ kết thúc ngay khi một trong hai người chơi thắng $s$ **hiệp**. Cho diễn biến **trận đấu**, tìm tất cả cặp $s$ và $t$ có thể. ### Input Dòng đầu tiên chứa $n$ $(1 \le n \le 10^5)$ - số lần **giao bóng** của trận đấu. Dòng thứ hai chứa $n$ số nguyên $a_i$. Nếu $a_i = 1$, Petya thắng lần **giao bóng** thứ $i$, $a_i = 2$ thì Gena thắng. Không đảm bảo rằng tồn tại ít nhất $1$ cặp $s, t$ thỏa mãn diễn biến trận đấu. ### Output Dòng đầu chứa $k$ - số cặp $s, t$ thỏa mãn diễn biến trận đấu. $k$ dòng sau mỗi dòng chứa $s_i$ và $t_i$. In ra theo thứ tự tăng dần của $s$, nếu $s$ bằng nhau thì theo thứ tự tăng dần của $t$. --- ## C. Ntarsis' Set Ntasis có một dãy $S$, ban đầu chứa các số nguyên $1, 2, 3, ..., 10^{1000}$ sắp xếp tăng dần. Mỗi ngày, anh ấy xóa các số nhỏ nhất thứ $a_1, a_2, ..., a_n$ cùng lúc. Tìm số nhỏ nhất trong dãy $S$ sau $k$ ngày. ### Input Dòng đầu tiên chứa $t$ $(1 \le t \le 10^5)$ - số test. Với mỗi test: Dòng đầu chứa $n$ và $k$ $(1 \le n, k \le 2 . 10^5)$ - số quả bóng. Dòng tiếp theo chứa $n$ số $a_1, a_2, ..., a_n$ $(1 \le a_i \le 10^9)$. Đảm bảo rằng: - tổng $n$ của tất cả các test không vượt quá $2 . 10^5$. - tổng $k$ của tất cả các test không vượt quá $2 . 10^5$. - $a_1 < a_2 < ... < a_n$ mọi test. ### Output In ra số nhỏ nhất trong dãy $S$ sau $k$ ngày. --- ## D. Inverse of Rows and Columns Bạn được cho ma trận nhị phân $a$ size $n$ x $m$. Bạn có thể thực hiện một vài (có thể không thực hiện) **thao tác** với ma trận này. Trong một **thao tác** bạn có thể **reverse** (biến $0$ thành $1$ và ngược lại) **một cột** hoặc **một hàng** của ma trận. Nhiệm vụ của bạn là **sort** lại ma trận ban đầu bằng các thao tác trên. Một ma trận được coi là **sorted** nếu dãy $[a_{1, 1}, a_{1, 2}, ..., a_{1, m}, a_{2, 1}, a_{2, 2}, ..., a_{2, m}, ..., a_{n, m - 1}, a_{n, m}]$ không giảm. ### Input Dòng đầu tiên chứa $n$ và $m$ $(1 \le n, m \le 200)$ - số hàng và số cột của ma trận. $n$ dòng sau, mỗi dòng chứa $m$ số nguyên $a_{i, j}$ $(0 \le a_{i, j} \le 1)$. ### Output Nếu không thể **sort** lại ma trận, in ra "NO". Ngược lại, in ra "YES". Dòng thứ hai in xâu $r$ độ dài $n$, trong đó $r_i = 1$ khi thực hiện **thao tác** lên hàng $i$, ngược lại $r_i = 0$. Dòng thứ ba in ra xâu $c$ độ dài $n$, trong đó $c_i = 1$ khi thực hiện **thao tác** lên cột $i$, ngược lại $c_i = 0$. Nếu có nhiều đáp án, in ra bất kỳ.