[Buổi 12][Chia để trị][HW] Bài 1: Nhật ký số phép so sánh khi Merge Sort


LÀM BÀI

Points: 100
Time limit: 2.0s
Memory limit: 256M

Author:
Problem types

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: n số 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

There are no comments at the moment.

Zalo