Chọn Số

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

Cho bốn số nguyên a, b, c, d.

Hãy đếm xem có bao nhiêu số nguyên x thoả mãn hoặc a <= x <= b hoặc c <= x <= d.

Dữ liệu đầu vào:
Gồm 4 số nguyên a, b, c, d  trên cùng một dòng cách nhau một khoảng trắng (1 <= a, b, c, d <= 10^18)
Dữ liệu đầu ra:
Gồm duy nhất một số nguyên là số lượng giá trị x tìm được.
Ví dụ:
Input:
1 6 3 5
Ouput:
6
Tham khảo:

Các nộp trên 1 dòng scratch

https://oj.vnoi.info/scratch_guide/


Bình luận

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



  • 0
    py52-03  đã bình luận lúc 21, Tháng 10, 2026, 13:21

    code python 3: def num(a, b, c, d): len1 = max(0, b - a + 1) len2 = max(0, d - c + 1) l = max(0, min(b, d) - max(a, c) + 1) kq = len1 + len2 - l return kq a, b, c, d = map(int, input().split()) print(num(a, b, c, d))


  • 1
    py52-03  đã bình luận lúc 1, Tháng 10, 2026, 13:40

    import sys

    def giaitoandaythang(): try: inputdata = sys.stdin.read().split() if not input_data: return

        m = int(input_data[0])
        y = int(input_data[1])
    
        # Mảng chứa số ngày của 12 tháng (mặc định tháng 2 là 28 ngày)
        so_ngay_thang = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
    
        # Cập nhật năm nhuận
        if (y % 400 == 0) or (y % 4 == 0 and y % 100 != 0):
            so_ngay_thang[2] = 29
    
        # Tính tổng số ngày từ tháng 1 đến tháng m
        tong_so_ngay = sum(so_ngay_thang[1:m+1])
        print(tong_so_ngay)
    except Exception:
        pass
    

    if name == "main": giaitoanday_thang()


  • 1
    py50_08  đã bình luận lúc 8, Tháng 9, 2026, 14:05

    ~x^2~


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

    Code:

    def num(a, b, c, d):
        len1 = max(0, b - a + 1) 
        len2 = max(0, d - c + 1)
        l = max(0, min(b, d) - max(a, c) + 1)
        kq = len1 + len2 - l
        return kq
    a, b, c, d = map(int, input().split())
    print(num(a, b, c, d))
    

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

      cảm ơn


  • 11
    Tuan1234  đã bình luận lúc 22, Tháng 7, 2025, 5:08

    Use it only you're stuck:

    a, b, c, d = map(int, input().split())

    cab = b - a + 1

    cd = d - c + 1

    st = max(a, c)

    ed = min(b, d)

    op = 0

    if st <= ed : op = ed - st + 1

    t =cab + cd - op

    print(t)


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

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


  • -3
    hohaidang  đã bình luận lúc 11, Tháng 7, 2025, 3:03

    Đọc 4 số nguyên a, b, c, d từ input

    a, b, c, d = map(int, input().split())

    Tính điểm bắt đầu và kết thúc của đoạn giao nhau (nếu có)

    startoverlap = max(a, c) endoverlap = min(b, d)

    Tính độ dài hai đoạn [a,b] và [c,d]

    length1 = b - a + 1 length2 = d - c + 1

    Tính độ dài đoạn giao nhau (nếu startoverlap <= endoverlap)

    overlaplength = endoverlap - startoverlap + 1 if startoverlap <= end_overlap else 0

    Kết quả là tổng độ dài 2 đoạn trừ đi phần giao nhau để không đếm trùng

    result = length1 + length2 - overlap_length

    In kết quả

    print(result)


  • 1
    phuquy  đã bình luận lúc 12, Tháng 6, 2025, 0:25

    a,b,c,d=map(int,input().split()) x=max(a,c) y=min(b,d) print((b-a+1)+(d-c+1)-(y-x+1 if x<=y else 0))