Điểm:
400 (p)
Thời gian:
1.0s
Bộ nhớ:
1023M
Input:
bàn phím
Output:
màn hình
Cho số tự nhiên \(A\) có \(N\) chữ số và số tự nhiên \(B\) có \(M\) chữ số \((2 ≤ N , M ≤ 200)\). Số nguyên dương \(C\) gồm các tính chất sau đây:
- Có \(N\) + \(M\) chữ số;
- Được tạo bởi từ các chữ số của \(A\) và \(B\);
- Thứ tự trước sau các chữ số của \(B\) trong \(C\) không thay đổi.
Yêu cầu: Tìm số \(C\) nhỏ nhất và số \(C\) lớn nhất.
Input
- Dòng đầu ghi số \(A\).
- Dòng tiếp theo ghi số \(B\).
Output
- Dòng đầu ghi số \(C\) nhỏ nhất
- Dòng tiếp theo ghi số \(C\) lớn nhất
Example
Test 1
Input
20
4181
Output
204181
421810
Bình luận
```cpp
mình bị WA 2 test cuối nhưng khi copy input chạy trên máy thì ra kết quả đúng mà không hiểu sao khi nộp lại chạy ra 1 kq khác
vậy đối với trường hợp mà số 0 vô nghĩa ở đầu thì ta không thể đổi bằng B ( vì B không được thay đổi và nếu mà chèn số lớn nhất hoặc nhỏ nhất của B vào thì 50 50 là sẽ thay đổi thứ tự của 😎 và nên mình phải chỉ có một cách là chèn vi tri so dau tien cua B trong day dk ad
Sao vd test nhỏ nhỏ không phải 024181 mà là 204181 vậy 🤔
Spoiler Alert
Hint 1
Hint 2
Hint 3
Hint 4
Reference AC code | \(O(n \log_2 n)\) time | \(O(n)\) auxiliary space | Two-pointers, String
Nếu có gì sai hoặc khó hiểu, các bạn cứ comment nhé!
P/s: Code mình hơi xấu !