Bài 3: Học chuyên sâu (TS10 SQRT thi thử lần 4 - 2026)
Xem PDFThời khóa biểu của học sinh trường THPT Chuyên Lê Quý Đôn có những tiết học chuyên sâu. Để chuẩn bị cho kì thi HSG sắp tới, thầy giáo chủ nhiệm muốn thực hiện sắp xếp lại thời khóa biểu nhằm dồn các tiết học chuyên sâu lại liên tiếp nhau để các thành viên lớp 11 Tin có thể tập trung ôn luyện.
Một cách cụ thể, thời khóa biểu của lớp 11 Tin gồm có \(n\) tiết học, các tiết học được đánh số thứ tự từ \(1\) đến \(n\) và mỗi tiết thứ \(i\) (\(1 \le i \le n\)) sẽ có mã số \(a_i\). Với một tiết học thứ \(i\), nếu \(a_i\) là một số nguyên tố thì tiết học đó là một tiết học chuyên sâu, ngược lại, đó là một tiết học các môn văn hóa khác.
Để đổi chỗ hai tiết học thứ \(i\) và \(j\), thầy giáo phải tốn \(|i - j|\) công sức. Thầy muốn tối thiểu hóa công sức sắp xếp mà vẫn có thể chuyển các tiết học chuyên sâu nằm liên tiếp nhau trên thời khóa biểu.
Yêu cầu: Bạn hãy lập trình giúp thầy giáo tính toán công sức nhỏ nhất phải bỏ ra để sắp xếp lại thời khóa biểu nhé.
Input
- Dòng đầu tiên chứa số nguyên dương \(n\) – số lượng tiết học (\(1 \le n \le 10^5\)).
- Dòng thứ hai chứa mã số của các tiết học: \(a_1, a_2, \dots, a_n\) (\(1 \le a_1, a_2, \dots, a_n \le 10^8\)).
Output
- Gồm một dòng duy nhất chứa kết quả bài toán: công sức ít nhất mà thầy giáo chủ nhiệm phải bỏ ra.
Example
Test 1
Input
3
2 1 2
Output
1
Note
Thầy giáo chủ nhiệm chỉ cần đổi chỗ hai tiết học thứ 1 và 2. Khi đó công sức thầy phải bỏ ra là \(1\).
Test 2
Input
5
2 3 1 5 7
Output
2
Note
- Đầu tiên, thầy giáo chủ nhiệm đổi chỗ hai tiết thứ 3 và 4 với công sức bỏ ra là \(1\), khi đó, thời khóa biểu có dạng: \([2, 3, 5, 1, 7]\).
- Cuối cùng, thầy giáo chủ nhiệm đổi chỗ hai tiết thứ 4 và 5 với công sức bỏ ra là \(1\), khi đó, thời khóa biểu có dạng: \([2, 3, 5, 7, 1]\) và công việc sắp xếp của thầy chủ nhiệm hoàn thành.
- Tổng công sức của thầy chủ nhiệm phải bỏ ra là \(2\). Có thể chứng minh rằng đây là cách sắp xếp tối ưu nhất.
Scoring
- \(30\%\) số điểm của bài có dữ liệu thỏa mãn: \(n \le 100\).
- \(30\%\) số điểm của bài có dữ liệu thỏa mãn: \(n \le 1000\).
- \(30\%\) số điểm của bài có dữ liệu thỏa mãn: \(a_1, a_2, \dots, a_n \le 10^5\).
- \(10\%\) số điểm còn lại của bài không có ràng buộc gì thêm.
Kỳ thi:
- Thi thử TS10 SQRT lần 4 năm 2026 (5 Tháng năm, 2026)
Bình luận (1)