Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Chương trình tìm số vị trí có thể trong hàng n người với điều kiện trước/sau trong Python

Cho ba số n, a, b. Ta đứng trong hàng n người, không biết vị trí chính xác. Biết rằng: có ít nhất a người phía trước, và nhiều nhất b người phía sau. Tìm số vị trí có thể.

Ví dụ: n = 10, a = 3, b = 4 → kết quả 5. Vị trí có thể: 0,1,2,3,4 (0-based từ trước).

Thuật toán giải quyết (O(1))

  1. Nếu a + b < n: trả về b + 1
  2. Nếu a + b >= n: trả về n - a

Giải thích: Vị trí i (0-based) thỏa mãn i ≥ a và n-1-i ≤ b → i ≥ a và i ≥ n-1-b. Số vị trí = min(n-1, n-1-b) - a + 1 = ...

Ví dụ minh họa

def solve(n, a, b):
    if a + b < n:
        return b + 1
    if a + b >= n:
        return n - a

n = 10
a = 3
b = 4
print(solve(n, a, b))

Đầu vào

10, 3, 4

Đầu ra

5