Floor Number (Codeforces 1426A)
Tags: Math, implementation

Vasya goes to visit his classmate Petya. Vasya knows that Petya's apartment number is $$$n$$$. There is only one entrance in Petya's house and the distribution of apartments is the following: the first floor contains $$$2$$$ apartments, every other floor contains $$$x$$$ apartments each. Apartments are numbered starting from one, from the first floor. I.e. apartments on the first floor have numbers $$$1$$$ and $$$2$$$, apartments on the second floor have numbers from $$$3$$$ to $$$(x + 2)$$$, apartments on the third floor have numbers from $$$(x + 3)$$$ to $$$(2 \cdot x + 2)$$$, and so on.Your task is to find the number of floor on which Petya lives. Assume that the house is always high enough to fit at least $$$n$$$ apartments.You have to answer $$$t$$$ independent test cases.

Input: The first line of the input contains one integer $$$t$$$ ($$$1 \le t \le 1000$$$) — the number of test cases. Then $$$t$$$ test cases follow.The only line of the test case contains two integers $$$n$$$ and $$$x$$$ ($$$1 \le n, x \le 1000$$$) — the number of Petya's apartment and the number of apartments on each floor of the house except the first one (there are two apartments on the first floor).

Output: For each test case, print the answer: the number of floor on which Petya lives.

Note: Consider the first test case of the example: the first floor contains apartments with numbers $$$1$$$ and $$$2$$$, the second one contains apartments with numbers $$$3$$$, $$$4$$$ and $$$5$$$, the third one contains apartments with numbers $$$6$$$, $$$7$$$ and $$$8$$$. Therefore, Petya lives on the third floor.In the second test case of the example, Petya lives in the apartment $$$1$$$ which is on the first floor.

Sample Inputs:
4
7 3
1 5
22 5
987 13

Sample Outputs:
3
1
5
77

Solution (Python):
import math
for i in range(int(input())):
    (n, x) = map(int, input().split())
    if n <= 2:
        print(1)
    else:
        print(math.ceil((n - 2) / x) + 1)

Solution (Python):
for _ in range(int(input())):
    (n, x) = map(int, input().split())
    if n == 1 or n == 2:
        print(1)
    else:
        print((n - 3) // x + 2)

Solution (Python):
def find_floor(t, cases):
    floors = []
    for case in cases:
        (n, x) = case
        if n <= 2:
            floors.append(1)
        else:
            remaining_apartments = n - 2
            floor_number = (remaining_apartments + x - 1) // x + 1
            floors.append(floor_number)
    return floors

def main():
    t = int(input())
    cases = []
    for _ in range(t):
        (n, x) = map(int, input().split())
        cases.append((n, x))
    result = find_floor(t, cases)
    for floor in result:
        print(floor)
if __name__ == '__main__':
    main()