Changing Volume (Codeforces 1255A)
Tags: Math, math

Bob watches TV every day. He always sets the volume of his TV to $$$b$$$. However, today he is angry to find out someone has changed the volume to $$$a$$$. Of course, Bob has a remote control that can change the volume.There are six buttons ($$$-5, -2, -1, +1, +2, +5$$$) on the control, which in one press can either increase or decrease the current volume by $$$1$$$, $$$2$$$, or $$$5$$$. The volume can be arbitrarily large, but can never be negative. In other words, Bob cannot press the button if it causes the volume to be lower than $$$0$$$.As Bob is so angry, he wants to change the volume to $$$b$$$ using as few button presses as possible. However, he forgets how to do such simple calculations, so he asks you for help. Write a program that given $$$a$$$ and $$$b$$$, finds the minimum number of presses to change the TV volume from $$$a$$$ to $$$b$$$.

Input: Each test contains multiple test cases. The first line contains the number of test cases $$$T$$$ ($$$1 \le T \le 1\,000$$$). Then the descriptions of the test cases follow.Each test case consists of one line containing two integers $$$a$$$ and $$$b$$$ ($$$0 \le a, b \le 10^{9}$$$) — the current volume and Bob's desired volume, respectively.

Output: For each test case, output a single integer — the minimum number of presses to change the TV volume from $$$a$$$ to $$$b$$$. If Bob does not need to change the volume (i.e. $$$a=b$$$), then print $$$0$$$.

Note: In the first example, Bob can press the $$$-2$$$ button twice to reach $$$0$$$. Note that Bob can not press $$$-5$$$ when the volume is $$$4$$$ since it will make the volume negative. In the second example, one of the optimal ways for Bob is to press the $$$+5$$$ twice, then press $$$-1$$$ once.In the last example, Bob can press the $$$+5$$$ once, then press $$$+1$$$. 

Sample Inputs:
3
4 0
5 14
3 9

Sample Outputs:
2
3
2

Solution (Python):
t = int(input())
test_cases = []
for _ in range(t):
    (a, b) = map(int, input().split())
    test_cases.append((a, b))
results = []
for (a, b) in test_cases:
    diff = abs(a - b)
    presses = diff // 5
    diff = diff % 5
    presses += diff // 2
    diff = diff % 2
    presses += diff
    results.append(presses)
for result in results:
    print(result)

Solution (Python):
def inlt():
    return list(map(int, input().split()))

def instr():
    s = input()
    return list(s[:len(s) - 1])

def main():
    t = int(input())
    while t > 0:
        cnt = 0
        (a, b) = map(int, input().split())
        if a < b:
            cnt = int((b - a) / 5)
            a += cnt * 5
            while b - a >= 2:
                cnt += 1
                a += 2
            while b - a >= 1:
                cnt += 1
                a += 1
        else:
            cnt = int((a - b) / 5)
            a -= cnt * 5
            while a - b >= 2:
                cnt += 1
                a -= 2
            while a - b >= 1:
                cnt += 1
                a -= 1
        print(cnt)
        t -= 1
if __name__ == '__main__':
    main()

Solution (Python):
for n in range(int(input())):
    (r, s) = map(int, input().split())
    t = abs(r - s)
    print(t // 5 + t % 5 // 2 + t % 5 % 2)