| # | Bài tập | Điểm | Thời gian: | Giới hạn bộ nhớ |
|---|---|---|---|---|
| 1 | Sắp xếp 1 | 100 (p) | 1.0s | 256M |
| 2 | Sắp xếp 2 | 100 (p) | 1.0s | 256M |
| 3 | Sắp xếp 3 | 100 (p) | 1.0s | 256M |
| 4 | Ghép số | 100 (p) | 1.0s | 256M |
| 5 | Trang trại nuôi bò | 100 (p) | 1.0s | 256M |
Trong một vương quốc toán học, nhà vua tổ chức một cuộc thi để tìm ra những phân số "quyền lực" nhất. Mỗi phân số thứ \(i\) được đại diện bởi một cặp số nguyên dương \((x_i, y_i)\), trong đó \(x_i\) là tử số và \(y_i\) là mẫu số.
Nhiệm vụ của bạn là giúp nhà vua sắp xếp danh sách \(n\) phân số này theo thứ tự giảm dần về giá trị. Trong trường hợp có hai hoặc nhiều phân số có giá trị bằng nhau, phân số nào có tổng tử số và mẫu số (\(x_i + y_i\)) lớn hơn sẽ được ưu tiên đứng trước.
Test 1
4
1 2
2 4
3 4
1 3
3 4
2 4
1 2
1 3
Trong một vương quốc nọ, các con số đang chuẩn bị tham gia một buổi dạ tiệc hoàng gia. Để buổi tiệc diễn ra trang trọng, Đức vua ban lệnh sắp xếp các con số theo một quy tắc đặc biệt:
Cho một dãy gồm \(n\) số nguyên \(a_i\), bạn hãy giúp Đức vua sắp xếp lại dãy số này theo đúng quy tắc trên.
Test 1
6
1 4 3 2 5 6
1 3 5 6 4 2
Trong một vương quốc nọ, nhà vua sở hữu một bộ sưu tập các viên ngọc quý, mỗi viên ngọc được khắc một mã số nguyên. Để chuẩn bị cho lễ hội hoàng gia, nhà vua muốn người quản kho sắp xếp lại các viên ngọc này theo một quy tắc đặc biệt:
Bạn hãy giúp người quản kho thực hiện nhiệm vụ này.
Test 1
7
1 3 2 2 1 3 4
3 3 2 2 1 1 4
Test 2
5
5 5 1 2 2
5 5 2 2 1
Cho \(n\) số nguyên dương \(a_1,a_2,...,a_n\), mỗi số không vượt quá \(10^7\). Từ các số này người ta có thể tạo ra một số nguyên mới bằng cách ghép tất cả các số đã cho, tức là viết liên tiếp các số đã cho với nhau. Ví dụ với dãy số \([123,124,56,90]\) ta có thể tạo ra các số mới sau: \(1231245690,1241235690,...\). Trong các số trên, số lớn nhất có thể tạo ra được là \(9056124123\).
Yêu cầu: Cho \(n\) và các số \(a_1,a_2,...,a_n\). Hãy xác định số lớn nhất có thể tạo được theo cách trên.
Test 1
4
557 92 19 47
925574719
Test 2
4
1 1 1 1
1111
Vào một buổi sáng, anh Bo sắp một đàn bò gồm \(n\) con bò để vắt sữa. Anh dự kiến là vào sáng hôm đó, con bò thứ \(i\) có khả năng sẽ vắt được \(a_i\) lít sữa. Tuy nhiên đàn bò của anh có đặc tính là cứ mỗi lần vắt sữa một con, những con còn lại trông thấy sợ quá nên sẽ bị giảm sản lượng mỗi con \(1\) lít sữa.
Nếu vắt sữa con bò thứ nhất, \(n-1\) con còn lại bị giảm sản lượng. Sau đó vắt sữa con bò thứ hai thì \(n-2\) con còn lại bị giảm sản lượng... Bạn hãy giúp anh Bo tính xem thứ tự vắt sữa bò như thế nào để số lượng sữa vắt được là nhiều nhất nhé.
Lưu ý: Sản lượng sữa của một con bò không thể xuống dưới mức \(0\).
Test 1
4
4 4 4 4
10
Vắt lần lượt các con bò từ 1 đến 4:
Test 2
4
2 1 4 3
6
Vắt sữa con bò 1 được 2 lít, lượng sữa còn lại 0, 3, 2. Vắt sửa con bò 3 được 3 lít lượng sữa còn lại là 0, 1. Vắt con bò 4 được thêm một lít. Tổng là 6.