[Buổi 4][Vòng lặp][RDD] Bài 14: Tránh tiếp xúc
Tránh tiếp xúc
Bối cảnh
FullHouse Dev đang quản lý một ký túc xá có N phòng được xếp thành một hàng thẳng. Họ cần bố trí chỗ ở cho X người, trong đó có Y người bị nhiễm thủy đậu.
Yêu cầu
Việc bố trí phải tuân thủ các quy tắc sau:
- Mỗi phòng chỉ được ở tối đa một người.
- Hai người bị nhiễm thủy đậu không được ở trong hai phòng kề nhau.
- Người khỏe mạnh không được ở trong phòng kề với bất kỳ người bị nhiễm thủy đậu nào.
Hãy xác định giá trị nhỏ nhất của N sao cho có thể bố trí chỗ ở cho tất cả mọi người theo đúng các quy tắc trên.
Input
- Dòng đầu tiên chứa số nguyên T — số lượng bộ test.
- Mỗi bộ test gồm một dòng chứa hai số nguyên X và Y:
- X là tổng số người.
- Y là số người bị nhiễm thủy đậu.
Output
Với mỗi bộ test, in ra một số nguyên duy nhất — số phòng nhỏ nhất cần có.
Ràng buộc
1 ≤ T ≤ 2001 ≤ X ≤ 10000 ≤ Y ≤ X
Ví dụ 1
Input
3
4 0
5 3
3 3
Output
4
8
5
Giải thích ví dụ
Test 1
Có 4 người khỏe mạnh và không có người bị nhiễm, vì vậy chỉ cần 4 phòng.
H H H H
Đáp án là 4.
Test 2
Có 3 người bị nhiễm và 2 người khỏe mạnh.
Một cách bố trí tối ưu là:
B _ B _ B _ H H
Trong đó:
Blà người bị nhiễm.Hlà người khỏe mạnh._là phòng trống.
Kiểm tra:
- Hai người bị nhiễm không ở hai phòng kề nhau.
- Hai người khỏe mạnh đều không ở phòng kề với bất kỳ người bị nhiễm nào.
Tổng số phòng là 8, do đó đáp án là 8.
Test 3
Có 3 người bị nhiễm và không có người khỏe mạnh.
Chỉ cần đảm bảo giữa hai người bị nhiễm luôn có ít nhất một phòng trống.
B _ B _ B
Tổng số phòng là 5, nên đáp án là 5.
Thông tin học tập
- Buổi: B04
- Concepts: for/while loops, multiple test cases
- Giới hạn kiến thức: B01-B04
- Time limit: 2 seconds
- Memory limit: 64 MB
- Point: 10
Comments