Bội của 45

Xem dạng PDF

Gửi bài giải

Điểm: 20,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
C, C++, Java, PyPy, Python, Scratch

Tuấn rất thích các số là bội của 45. Vì vậy cứ thấy bất kỳ một số nguyên dương N nào Tuấn cũng cố gắng biến đổi số đó bằng cách thay đổi vị trí các chữ số để được một bội số của 45.

Cho trước số nguyên dương N, hãy cho biết có thể biến đổi N để hợp với sở thích của Tuấn được hay không?

Input:
Một dòng chứa số nguyên N
1 <= N <= 10^1000
Ouput:
Nếu có thể biến đổi được thì in ra số nhỏ nhất thỏa mãn bài toán, ngược lại thì in -1
Ví dụ 1
Input:
153
Output:
135
Ví dụ 2
Input:
55544
Ouput:
-1

Bình luận

Hãy đọc nội quy trước khi bình luận.



  • 4
    minhkhoi_py30  đã bình luận lúc 27, Tháng 6, 2026, 7:19

    mình cho bạn code Python bình thường này(các bạn cho mình xin 1 vót nhé, cảm ơn các bạn!) còn đây là code:

    n = list(input())
    res = False
    for l in ['0', '5']:
        if l in n:
            t = n.copy()
            t.remove(l)
            t.sort()
            if t and t[0] == '0':
                for i in range(1, len(t)):
                    if t[i] != '0':
                        t[0], t[i] = t[i], t[0]
                        break
            c = ''.join(t) + l
            if res is False or c < res:
                res = c
    if res:
        print(res)
    else:
        print(-1)
    

  • 2
    py47_09  đã bình luận lúc 15, Tháng 6, 2026, 1:14

    Cho tôi code python 3 bình thường đi mà


  • -1
    xcx  đã bình luận lúc 20, Tháng 5, 2026, 12:34

    import java.util.*;

    public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String N = sc.nextLine();

        int sum = 0;
        boolean has0 = false, has5 = false;
        List<Character> digits = new ArrayList<>();
    
        for (char ch : N.toCharArray()) {
            digits.add(ch);
            int digit = ch - '0';
            sum += digit;
            if (ch == '0') has0 = true;
            if (ch == '5') has5 = true;
        }
    
        if (!(has0 || has5) || sum % 9 != 0) {
            System.out.println("-1");
            return;
        }
    
        Collections.sort(digits);
    
        if (digits.get(0) == '0') {
            for (int i = 1; i < digits.size(); i++) {
                if (digits.get(i) != '0') {
                    Collections.swap(digits, 0, i);
                    break;
                }
            }
        }
    
        char lastDigit = digits.get(digits.size() - 1);
        if (lastDigit != '0' && lastDigit != '5') {
            boolean swapped = false;
            for (int i = digits.size() - 2; i >= 0; i--) {
                if (digits.get(i) == '0' || digits.get(i) == '5') {
                    Collections.swap(digits, i, digits.size() - 1);
                    swapped = true;
                    break;
                }
            }
            if (!swapped) {
                System.out.println("-1");
                return;
            }
        }
    
        StringBuilder result = new StringBuilder();
        for (char ch : digits) result.append(ch);
        System.out.println(result.toString());
    }
    

    }


  • -1
    py50_03  đã bình luận lúc 28, Tháng 4, 2026, 13:42

    s=input().strip();d=sorted(s);print(-1 if sum(map(int,s))%9 or not any(c in '05' for c in d) else ''.join(d[:(i:=[i for i in range(len(d)-1,-1,-1) if d[i] in '05'][0])]+d[i+1:]+[d[i]])) code đây các bạn code của python


  • -3
    KVMB343_26  đã bình luận lúc 10, Tháng 4, 2026, 15:41

    code c++ no AI

    #include <bits/stdc++.h>
    using namespace std;
    string N;
    int main() {
        cin >> N;
        vector<char> d(N.begin(), N.end());
        string res = "";   
        for (char l : {'0', '5'}) {
            auto it = find(d.begin(), d.end(), l);
            if (it != d.end()) {
                vector<char> t = d;
                t.erase(find(t.begin(), t.end(), l)); 
                sort(t.begin(), t.end());
                if (!t.empty() && t[0] == '0') {
                    for (int i = 1; i < (int)t.size(); i++) {
                        if (t[i] != '0') {
                            swap(t[0], t[i]);
                            break;
                        }
                    }
                }
    
                string c(t.begin(), t.end());
                c.push_back(l);
    
                if (res.empty() || c < res) {
                    res = c;
                }
            }
        }
    
        if (res.empty()) {
            cout << -1 << "\n";
        } else {
            cout << res << "\n";
        }
        return 0;
    }
    

  • -9
    hoangminh080316  đã bình luận lúc 8, Tháng 4, 2026, 14:52

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


  • 8
    KVMB343_26  đã bình luận lúc 8, Tháng 4, 2026, 12:14

    có ai cần code C++ ko, tôi có nè, nếu CẦN, cho tôi xin 20 vote nhé(pls!!!) TYSM


  • 4
    minhkhoi_py30  đã bình luận lúc 30, Tháng 3, 2026, 12:09

    nếu bình luận này được 20 vote, tôi sẽ cho code AC 100 %(CHẮC LUÔN)


  • 3
    home_khang  đã bình luận lúc 15, Tháng 3, 2026, 4:28

    code cua tht07 la AI chac luon


  • -5
    tht07  đã bình luận lúc 22, Tháng 2, 2026, 13:56

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


  • 2
    quanganhtht26  đã bình luận lúc 25, Tháng 1, 2026, 6:19

    đừng nhắn linh tnh nhé các bạn


  • -2
    py44_10  đã bình luận lúc 18, Tháng 12, 2025, 15:30

    mình xin code python với

    đi mà 🙏🙏🙏


  • 6
    minhkhoi_py30  đã bình luận lúc 6, Tháng 12, 2025, 9:34

    mình xin code python với


  • 7
    minhkhoi_py30  đã bình luận lúc 1, Tháng 12, 2025, 13:38

    đừng nhắn linh tinh nhé


  • -1
    giabaotht26  đã bình luận lúc 17, Tháng 11, 2025, 14:12

    mình xin code với


  • -13
    tieuhatuanminh  đã bình luận lúc 11, Tháng 11, 2025, 11:37

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


  • 4
    phuquy  đã bình luận lúc 7, Tháng 6, 2025, 9:53

    code:

    • import sys

      s = input().strip() if not s: print(-1) sys.exit()

      a = sorted(s) t = sum(int(x) for x in a) if t % 9 != 0 or ('0' not in a and '5' not in a): print(-1) sys.exit()

      r = None for l in ['0','5']: if l in a: b = a.copy() b.remove(l) b.sort() if b and b[0] == '0': for i in range(1,len(b)): if b[i] != '0': b[0],b[i] = b[i],b[0] break else: if l == '0': continue x = ''.join(b) + l if x[0] == '0': continue if r is None or x < r: r = x

      if r: print(r) else: print(-1)


  • -8
    missna  đã bình luận lúc 7, Tháng 5, 2025, 12:13

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.