Buổi 01 - THTB Sơ loại Toàn quốc 2025 (lần 1)

Bộ đề bài

1. Tính toán (THTB Vòng Sơ loại Toàn quốc 2025 - Lần 1)

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

2. Bảng vuông gần nguyên tố (THTB Vòng Sơ loại Toàn quốc 2025 - Lần 1)

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

3. Biến đổi (THTB Vòng Sơ loại Toàn quốc 2025 - Lần 1)

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

4. Truy vấn tổng 2D

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

Cho một hình chữ nhật có \(N\) hàng và \(M\) cột có số thứ tự được đánh từ trên xuống và từ trái sang phải.

Trên mỗi ô có viết một số nguyên và nhiệm vụ chúng ta phải trả lời \(Q\) truy vấn. Mỗi truy vấn sẽ gồm bốn số nguyên là \(x_1, y_1, x_2, y_2\), sẽ mô tả một khu vực con trong hình chữ nhật. Ứng với mỗi truy vấn, hãy in ra tổng của của khu vực con đó, có điểm \((x_1, y_1)\) là ô góc trái trên và có điểm \((x_2, y_2)\) là ô ở góc phải dưới của khu vực.

Input

  • Dòng đầu tiên chứa hai số nguyên \(N\) (chiều rộng) và \(M\) (chiều dài) \((1 \leq N, M \leq 1000)\)
  • \(N\) dòng sau, mỗi dòng chứa \(M\) số nguyên, giá trị tuyệt đối của mỗi số nguyên này không vượt quá \(10^9\)
  • Dòng kế tiếp, chứa một số nguyên \(Q\) (số truy vấn) \((1 \leq Q \leq 10^5)\)
  • \(Q\) dòng kết tiếp, mỗi dòng chứa bốn số nguyên \(x_1, y_1, x_2, y_2\). \((1 \leq x_1 \leq x_2 \leq N)\), \((1 \leq y_1 \leq y_2 \leq M)\)

Output

  • In ra \(Q\) dòng, ứng với truy vấn thứ \(i\), in ra một số nguyên là tổng của khu vực hình chữ nhật được nhắc đến bởi truy vấn thứ \(i\).

Example

Test 1

Input
3 3
1 2 3
-4 -5 -6
7 8 9
4
1 1 2 3
2 3 3 3
1 1 2 2
1 1 1 3
Output
-9
3
-6
6
Note



5. Bình phương (THTB TQ 2017)

Điểm: 150 (p) Thời gian: 3.0s Bộ nhớ: 256M Input: NUMORDER.INP Output: NUMORDER.OUT

Bé Cam hôm nay đến lớp học Toán và được cô dạy về bình phương của một số. Cô cho Cam một bảng \(A\) kích thước \(10^{6} \times 10^{6}\) phần tử. Các dòng được đánh số từ \(1\) đến \(10^{6}\) theo chiều từ dưới lên trên, các cột được đánh số từ \(1\) đến \(10^{6}\) theo chiều từ trái sang phải. Phần tử nằm ở hàng \(i\), cột \(j\) được kí hiệu là \(A_{ij}\) được tính bằng công thức \(A_{ij} = i^{2} + j^{2}\).

Cô giáo tạo ra dãy \(B\) đánh số từ \(1\) đến \(10^{12}\) gồm toàn bộ các phần tử của bảng \(A\) rồi sắp xếp theo thứ tự không giảm. Sau đó cô hỏi Cam xem số thứ \(K\) trong dãy \(B\) có giá trị là bao nhiêu? Lúc đầu cô đưa số \(K\) nhỏ nên Cam còn đếm được. Khi số \(K\) lớn lên, Cam không còn tính nhẩm trong đầu được nữa, Cam muốn các bạn thi Tin học trẻ hôm nay giúp bé tìm đáp án cho câu hỏi của cô giáo nhé. Hình bên là ảnh Cam chụp góc trái dưới cùng bảng \(A\).

Sau khi chuyển các phần tử của bảng \(A\) vào dãy \(B\) và sắp theo thứ tự không giảm thì Cam có những phần tử đầu tiên của dãy \(B\)\(\{2, 5, 5, 8, 10, 10, 13, 13, 17, 17, 18, \ldots \}\) Khi cô hỏi \(K=5\) thì Cam đã ngay lập tức đưa ra được đáp án là \(10\). Các bạn hãy giúp bé với những số \(K\) lớn hơn nhé.

Input

  • Một dòng duy nhất chứa một số nguyên dương \(K\) \((1 \leq K \leq 10^{12})\).

Output

  • In ra một số nguyên là số thứ \(K\) trong dãy \(B\).

Scoring

  • Subtask \(1\) (\(60\%\) số điểm): \(1 \le K \le 10^5\).
  • Subtask \(2\) (\(40\%\) số điểm): không có rằng buộc gì thêm.

Example

Test 1

Input
5
Output
10

6. Nhà nghiên cứu

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

Tiền sĩ Hùng là một nhà nghiên cứu về các con số. Đề tài lần này ông được giao nhiệm vụ tìm ra một bài toán để kiểm tra năng lực của các học viên trong phòng thí nghiệm của ông. Nhưng tất cả các học viên của ông đều rất thông minh nên để thử tài họ phải là một bài toán cực khó. Con trai của ông năm nay vào lớp 3. Do ảnh hưởng của bố nên cậu ta cũng rất hứng thú với những con số. Trong khi Hùng đang nát óc nghĩ bài toán thì con trai của ông chỉ vào đống tài liệu về các dãy bit gồm toàn số \(0, 1\) và khoái chí nói rằng: “Ba ơi, đoạn bit này có \(5\) số \(0\)\(5\) số \(1\) ba ạ. Con rất thích những thứ cân bằng như thế !!”. Cậu con trai vừa dứt lời, Hùng liền nghĩ ngay ra bài toán để thách đố học viên của mình. Quả nhiên sau đó tât cả đều chịu thua trước bài toán hóc búa này. Các bạn hãy giúp các bạn học viên giải quyết bài toán của Tiến sĩ Hùng nhé!!!! Bài toán như sau: “Cho dãy số \(A\) gồm \(N\) phần tử \(0\) hoặc \(1\). Tìm đoạn con liên tiếp dài nhất mà trong đó có số lượng số \(0\) và số lượng số \(1\) là như nhau”.

Input

  • Dòng đầu tiên chứa \(1\) số nguyên dương \(N\).
  • Dòng thứ hai gồm \(N\) số nguyên dương \(A_{1},A_{2},...,A_{N}\).

Output

  • Một dòng ghi một số nguyên duy nhất là kết quả của bài toán.

Constraints

  • \(1 \leq n \leq 10^{5}\)
  • \(0 \leq A_{i} \leq 1\)

Scoring

  • Subtask \(1\) (\(60\%\) số điểm): \(N \leq 10^{3}\).
  • Subtask \(2\) (\(40\%\) số điểm): Không có ràng buộc gì thêm.

Example

Test 1

Input
5
1 1 0 0 1 
Output
4

Test 2

Input
10
1 0 0 1 1 1 0 1 1 0 
Output
6

Test 3

Input
4
1 1 1 1 
Output
0

7. Hoán vị

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

Lập trình liệt kê các hoán vị của \({1, 2, ... , n}\) theo thứ tự từ điển.

Input

  • 1 dòng chứa số nguyên dương \(n \le 10\).

Output

  • In ra các hoán vị theo thứ tự từ điển, mỗi hoán vị trên một dòng.

Example

Test 1

Input
3
Output
1 2 3 
1 3 2 
2 1 3 
2 3 1 
3 1 2 
3 2 1

8. Biểu thức 2

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

Bạn được cho 1 danh sách \(A\) gồm \(n\) số nguyên và một số nguyên \(m\). Bạn được quyền thực hiện các thao tác thỏa mãn điều kiện sau:

  • Không được thay đổi thứ tự các phần tử của danh sách này.
  • Bạn phải chèn thêm một trong ba dấu \(\{+,-, * \}\) vào giữa các phần tử của tập hợp.
  • \(n-1\) khoảng giữa các phần tử mà bạn có thể chèn dấu vào.

Ví dụ, với \(a=[3,4,5]\) bạn có thể thêm vào các dấu biến nó trở thành biểu thứ \(3+4-5\). Giá trị của biểu thức này là \(2\).

Hãy liệt kê hết các cách chèn dấu mà giá trị của biểu thức được tạo ra là \(m\).

Input

  • Dòng thứ nhất chứa hai số nguyên \(n\), \(m\) \((1 \leq n < 10, |m| \leq 10^{18})\)
  • Dòng thứ hai chứa \(n\) số nguyên \(A_1, A_2, \dots, A_n\) (\(|A_i| \leq 10^9\))

Output

  • In ra nhiều dòng, mỗi dòng là một biểu thức hợp lệ. Các biểu thức in tăng dần theo thứ tự từ điển. Xem ví dụ để in đáp án được chính xác.

Example

Test 1

Input
5 0
4 1 2 3 10 
Output
4*1+2*3-10
4+1*2*3-10
4+1+2+3-10

Test 2

Input
5 42
10 5 4 6 2 
Output
10*5+4-6*2
10*5-4-6+2
10+5*4+6*2