[Buổi 12][Chia để trị][HW] Bài 1: Nhật ký số phép so sánh khi Merge Sort
Nhật ký số phép so sánh khi Merge Sort
Bối cảnh và bài toán
Một công cụ giảng dạy chạy Merge Sort chuẩn: chia đoạn tại mid=(l+r)/2; sort nửa trái trước, nửa phải sau; khi merge, mỗi lần so sánh trực tiếp hai phần tử đầu của hai nửa chưa cạn được tính là một phép so sánh. Các bước copy phần còn lại không tính.
Yêu cầu
In tổng số phép so sánh của quy trình Merge Sort chuẩn và mảng sau khi sắp xếp.
Input
- Dòng 1:
n. - Dòng 2:
nsố nguyên.
Output
Dòng 1 in số phép so sánh. Dòng 2 in mảng tăng dần.
Ràng buộc
1 <= n <= 2 * 10^5|a[i]| <= 10^9
Chấm điểm
| Subtask | Điểm | Điều kiện | Official tests |
|---|---|---|---|
| S1 | 30% | n ≤ 200 | 01–03 |
| S2 | 30% | n ≤ 5 * 10^4 | 04–06 |
| S3 | 40% | Không có ràng buộc bổ sung | 07–10 |
Ví dụ 1
Input
2
2 1
Output
1
1 2
Giải thích. Hai nửa một phần tử được so sánh đúng một lần.
Ví dụ 2
Input
1
7
Output
0
7
Giải thích. Đoạn một phần tử là base case, không cần merge.
Thông tin bài tập
| Thuộc tính | Giá trị |
|---|---|
| Mã bài | DSA-M04-B12-HW01 |
| Buổi | B12 |
| Loại bài | HOMEWORK |
| Mức độ khó | Dễ (Easy) |
| Thời gian làm bài khuyến nghị | 30 phút |
| Time limit | 2 giây |
| Memory limit | 256 MB |
| Tổng điểm | 100 |
| Chuẩn ngôn ngữ tham chiếu | C++11 trở lên |
Nguồn: FULLHOUSE DEV – Self-generated.
Comments