Chia hết cho 5

Xem dạng PDF

Gửi bài giải

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

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

Cho một số tự nhiên có số lượng chữ số nhỏ hơn hoặc bằng ~100~. Cho phép sắp xếp lại các chữ số của số đó. Hãy đưa ra số nhỏ nhất có thể tạo bởi số ban đầu và chia hết cho ~5~. Nếu không có đáp án nào thỏa mãn, hãy in ra 0.

Dữ liệu
  • Số tự nhiên ~N~ ~(N \le 10^{100})~
Kết quả
  • Một số tự nhiên duy nhất là kết quả của bài toán.
Chấm điểm
  • Có 20% số test ứng với 20% số điểm: ~N ≤ 1000~;
  • 40% số test khác ứng với 40% số điểm: Tất cả các chữ số trong số tự nhiên ~N~ đều khác ~0~;
  • 40% số test còn lại ứng với 40% số điểm: Không có ràng buộc gì thêm.
Sample
Input 1
987654321
Output 1
123467895
Input 2
90000100
Output 2
10000090

Bình luận

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



  • 0
    NahImNotBtBro  đã bình luận lúc 22, Tháng 4, 2025, 13:16

    code:

    def findsmallestdivisibleby5(N): from collections import Counter

    digits = list(N)
    count = Counter(digits)
    
    candidates = []
    
    for last_digit in ['0', '5']:
        if count[last_digit] > 0:
            count[last_digit] -= 1
            remaining_digits = []
    
            for d in '0123456789':
                remaining_digits.extend([d] * count[d])
    
            if remaining_digits and remaining_digits[0] == '0':
                for i in range(1, len(remaining_digits)):
                    if remaining_digits[i] != '0':
                        remaining_digits[0], remaining_digits[i] = remaining_digits[i], remaining_digits[0]
                        break
                else:
                    if last_digit == '0':
                        candidates.append('0')
                    count[last_digit] += 1
                    continue
    
            number = ''.join(remaining_digits) + last_digit
            candidates.append(number)
            count[last_digit] += 1
    
    if not candidates:
        return '0'
    return min(candidates)
    

    N = input().strip() print(findsmallestdivisibleby5(N))


  • -3
    nam12345  đã bình luận lúc 19, Tháng 4, 2025, 3:44

    Thấy dễ thì bày coi


  • -2
    voducviet500  đã bình luận lúc 13, Tháng 4, 2025, 8:10

    thấy cũng dễ


  • -7
    baon27793  đã bình luận lúc 12, Tháng 4, 2025, 13:40

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


    • -3
      khuyenchu  đã bình luận lúc 18, Tháng 4, 2025, 9:46

      hi