Submit solution
Points:
200 (partial)
Time limit:
1.0s
Memory limit:
640M
Input:
stdin
Output:
stdout
Author:
Problem types
Vào một buổi sáng, rất tình cờ Nam nhìn thấy một số nguyên dương N trên đường từ nhà đến trường. Vì Nam rất thích số \(30\) nên Nam muốn biến đổi số \(N\) thành số \(M\) có dạng là số lớn nhất và là bội của số \(30\) bằng cách thay đổi vị trí của các chữ số trong số \(N\) mà Nam nhìn thấy.
Yêu cầu: Hãy trợ giúp Nam bằng cách viết một chương trình tìm số \(M\) (nếu nó tồn tại).
Dữ liệu vào
- Gồm 1 dòng duy nhất chứa số nguyên \(N\), số \(N\) có tối đa là \(10^5\) chữ số.
Kết quả
- In số \(M\) vừa tìm được. Nếu không tồn tại \(M\) thì in ra \(-1\).
Sample Input
30
Sample Output
30
Sample Input
102
Sample Output
210
Sample Input
3333333333333333333333333333
Sample Output
-1
View comments (4)
Comments
for char c : s là sao vậy bạn
for(char c : s) chỉ là vòng for duyệt lần lượt tất cả các kí tự của xâu s thôi bạn ạ.
ok tks nha
Spoiler Alert
Hint 1
Hint 2
Hint 3
Hint 4
Reference AC code | \(O(log_{10}n\) \(\times\) \(log_2(log_{10}n))\) time | \(O(n)\) auxiliary space | Sorting, String
Another Approach
Reference AC code | \(O(n)\) time | \(O(n)\) auxiliary space |