[Buổi 4][Vòng lặp][RDD] Bài 14: Tránh tiếp xúc


LÀM BÀI

Points: 10
Time limit: 2.0s
Memory limit: 64M

Author:
Problem types
Allowed languages
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 XY:
    • 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 ≤ 200
  • 1 ≤ X ≤ 1000
  • 0 ≤ 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 đó:

  • B là người bị nhiễm.
  • H là 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

There are no comments at the moment.

Zalo