Bỏ qua để đến nội dung

HSG lớp 10 Hà Tĩnh 2025-2026

SỞ GIÁO DỤC VÀ ĐÀO TẠO HÀ TĨNH ĐỀ THI CHÍNH THỨC
(Đề thi có 03 trang, gồm 03 bài)

KỲ THI CHỌN HỌC SINH GIỎI TỈNH LỚP 10 THPT Năm học 2025 - 2026
Môn: Tin học - Ngày thi: 23/3/2026
Thời gian làm bài: 150 phút


Tiêu đềFile chương trìnhFile dữ liệuFile kết quảĐiểm
Bài 1Cặp số bộiCPAR.*CPAR.INPCPAR.OUT7
Bài 2Bán hàngSELF.*SELF.INPSELF.OUT7
Bài 3Tạo mảngTCRE.*TCRE.INPTCRE.OUT6

Dấu * được thay thế bởi cpp hoặc py của ngôn ngữ lập trình được sử dụng tương ứng là C++ hoặc Python.

Cho hai số nguyên dương n và k.

Yêu cầu: Hãy đếm xem có bao nhiêu cặp số (x, y) với 1 ≤ x < y ≤ n sao cho tổng x + y chia hết cho k.

Dữ liệu: Vào từ tệp văn bản CPAR.INP một dòng duy nhất chứa hai số nguyên dương n, k (1 ≤ n ≤ 10⁹; 1 ≤ k ≤ 10⁶).

Kết quả: Ghi ra tệp văn bản CPAR.OUT một số nguyên duy nhất là yêu cầu của bài toán.

Ràng buộc:

  • Có 70% số test ứng với 70% số điểm của bài thỏa mãn: n ≤ 10³;
  • 30% số test còn lại ứng với 30% số điểm của bài không có ràng buộc gì thêm.

Ví dụ:

CPAR.INPCPAR.OUTGiải thích
4 22Có hai cặp thỏa mãn (1, 3) và (2, 4)
4 61Có một cặp thỏa mãn (2, 4)

Bán hàng qua mạng là một hình thức kinh doanh ngày càng phổ biến. Một trong số đó là thực hiện livestream. Trong phiên livestream, người bán hàng giới thiệu sản phẩm, người mua đặt hàng bằng cách tương tác với người bán. Số lượng khách hàng tương tác càng nhiều thì khả năng số hàng bán được càng lớn. Một phiên livestream kéo dài trong thời gian n phút, tại phút thứ i có số lượng khách hàng tương tác là aᵢ.

Một đoạn thời gian liên tiếp từ phút L đến phút R (L < R) được coi là một đợt “Bùng nổ tương tác” nếu tồn tại duy nhất một thời điểm k (L < k < R) thỏa mãn đồng thời hai điều kiện:

  • Giai đoạn tăng: Số lượng tương tác tăng ngặt từ phút L đến phút k: a_L < a_(L+1) < … < a_k;
  • Giai đoạn giảm: Số lượng tương tác giảm ngặt từ phút k đến phút R: a_k > a_(k+1) > … > a_R.

Yêu cầu: Cho một phiên livestream kéo dài trong n phút và Q truy vấn, mỗi truy vấn gồm hai số nguyên dương L và R. Với mỗi truy vấn, hãy cho biết đoạn thời gian liên tiếp từ phút thứ L đến phút thứ R có phải là một đợt “Bùng nổ tương tác” hay không?

Dữ liệu: Vào từ tệp văn bản SELF.INP:

  • Dòng đầu tiên chứa hai số nguyên dương n và Q (3 ≤ n ≤ 10⁶; 1 ≤ Q ≤ 10⁶);
  • Dòng thứ hai chứa n số nguyên dương a₁, a₂, …, aₙ với aᵢ là số lượng khách hàng tương tác tại phút thứ i (aᵢ ≤ 10⁹; 1 ≤ i ≤ n);
  • Q dòng tiếp theo, mỗi dòng chứa hai số nguyên L và R (1 ≤ L < R ≤ n).

Kết quả: Ghi ra tệp văn bản SELF.OUT: Gồm Q dòng, mỗi dòng ghi YES nếu đoạn thời gian liên tiếp từ phút thứ L đến phút thứ R là một đợt “Bùng nổ tương tác”, ngược lại ghi NO.

Ràng buộc:

  • Có 60% số test ứng với 60% số điểm của bài thỏa mãn: 1 ≤ n ≤ 10³; 1 ≤ Q ≤ 10³;
  • 40% số test còn lại ứng với 40% số điểm của bài không có ràng buộc gì thêm.

Ví dụ:

SELF.INPSELF.OUTGiải thích
8 2
1 3 5 4 2 7 3 5
1 5
1 3
YES
NO
- Đoạn [1,5] gồm các phần tử: 1 3 5 4 2
+ Giai đoạn tăng: 1 < 3 < 5
+ Giai đoạn giảm: 5 > 4 > 2
- Đoạn [1,3] gồm các phần tử: 1 3 5
+ Giai đoạn tăng: 1 < 3 < 5
+ Giai đoạn giảm: không có

Cho mảng A gồm n số nguyên a₁, a₂, …, aₙ.

Một đoạn con liên tiếp của mảng A là một dãy gồm các phần tử liên tiếp có dạng: aᵢ, aᵢ₊₁, …, aⱼ (1 ≤ i ≤ j ≤ n) có độ dài là j − i + 1.

Với mỗi số nguyên k (1 ≤ k ≤ n), xét tất cả các đoạn con liên tiếp của mảng A có độ dài bằng k. Gọi bₖ là giá trị lớn nhất trong các giá trị nhỏ nhất của các đoạn con liên tiếp có độ dài k.

Yêu cầu: Hãy xây dựng mảng B = (b₁, b₂, …, bₙ).

Dữ liệu: Vào từ tệp văn bản TCRE.INP:

  • Dòng thứ nhất chứa số nguyên n (1 ≤ n ≤ 10⁵);
  • Dòng thứ hai chứa n số nguyên dương a₁, a₂, …, aₙ (1 ≤ aᵢ ≤ 10⁹; 1 ≤ i ≤ n).

Kết quả: Ghi ra tệp văn bản TCRE.OUT một dòng gồm n số nguyên b₁, b₂, …, bₙ, mỗi số ghi cách nhau một dấu cách.

Ràng buộc:

  • Có 40% số test ứng với 40% số điểm của bài thỏa mãn: 1 ≤ n ≤ 10²;
  • Có 30% số test ứng với 30% số điểm của bài thỏa mãn: 1 ≤ n ≤ 5×10³;
  • 30% số test còn lại ứng với 30% số điểm của bài không có ràng buộc gì thêm.

Ví dụ:

TCRE.INPTCRE.OUTGiải thích
4
1 2 5 1
5 2 1 1- Với k=1: Các đoạn con là [1], [2], [5], [1]. Các giá trị nhỏ nhất tương ứng: 1, 2, 5, 1. Giá trị lớn nhất trong các giá trị nhỏ nhất là 5.
- Với k=2: Các đoạn con là [1, 2], [2, 5], [5, 1]. Các giá trị nhỏ nhất tương ứng: 1, 2, 1. Giá trị lớn nhất trong các giá trị nhỏ nhất là 2.
- Với k=3: Các đoạn con là [1, 2, 5], [2, 5, 1]. Các giá trị nhỏ nhất tương ứng: 1, 1. Giá trị lớn nhất trong các giá trị nhỏ nhất là 1.
- Với k=4: Đoạn con là [1, 2, 5, 1]. Các giá trị nhỏ nhất tương ứng: 1. Giá trị lớn nhất trong các giá trị nhỏ nhất là 1.

  • Thí sinh không được sử dụng tài liệu.
  • Giám thị không giải thích gì thêm.