Rudolph and Cut the Rope  (Codeforces 1846A)
Tags: Math, implementation

There are $$$n$$$ nails driven into the wall, the $$$i$$$-th nail is driven $$$a_i$$$ meters above the ground, one end of the $$$b_i$$$ meters long rope is tied to it. All nails hang at different heights one above the other. One candy is tied to all ropes at once. Candy is tied to end of a rope that is not tied to a nail.To take the candy, you need to lower it to the ground. To do this, Rudolph can cut some ropes, one at a time. Help Rudolph find the minimum number of ropes that must be cut to get the candy.The figure shows an example of the first test:  

Input: The first line contains one integer $$$t$$$ ($$$1 \le t \le 10^4$$$) — the number of test cases.The first line of each test case contains one integer $$$n$$$ ($$$1 \le n \le 50$$$) — the number of nails.The $$$i$$$-th of the next $$$n$$$ lines contains two integers $$$a_i$$$ and $$$b_i$$$ ($$$1 \le a_i, b_i \le 200$$$) — the height of the $$$i$$$-th nail and the length of the rope tied to it, all $$$a_i$$$ are different.It is guaranteed that the data is not contradictory, it is possible to build a configuration described in the statement.

Output: For each test case print one integer — the minimum number of ropes that need to be cut to make the candy fall to the ground.


Sample Inputs:
4
3
4 3
3 1
1 2
4
9 2
5 2
7 7
3 4
5
11 7
5 10
12 9
3 2
1 5
3
5 6
4 5
7 7

Sample Outputs:
2
2
3
0

Solution (Python):
import sys
import collections
input = sys.stdin.buffer.readline
ii = lambda : int(input())
fi = lambda : float(input())
si = lambda : input().decode().rstrip()
mi = lambda : map(int, input().split())
mf = lambda : map(float, input().split())
msi = lambda : map(str, input().strip().decode().split(' '))
li = lambda : list(mi())
lf = lambda : list(mf())

def YES():
    sys.stdout.write('YES\n')

def Yes():
    sys.stdout.write('Yes\n')

def yes():
    sys.stdout.write('yes\n')

def NO():
    sys.stdout.write('NO\n')

def No():
    sys.stdout.write('No\n')

def no():
    sys.stdout.write('no\n')

class Solution:

    def __init__(self):
        return

    def solve(self):
        for _ in range(ii()):
            total = 0
            for i in range(ii()):
                (a, b) = mi()
                if a > b:
                    total += 1
            sys.stdout.write(str(total) + '\n')
if __name__ == '__main__':
    Solution().solve()

Solution (Python):
import sys
input = sys.stdin.readline

def solve():
    n = int(input().strip())
    ans = 0
    for i in range(n):
        (a, b) = map(int, input().split())
        if a > b:
            ans += 1
    print(ans)

def main():
    t = int(input())
    while t:
        solve()
        t -= 1
if __name__ == '__main__':
    main()

Solution (Python):
import sys
input = sys.stdin.readline

def solve():
    n = int(input())
    s1 = 0
    for _ in range(n):
        (x, y) = map(int, input().split())
        if x > y:
            s1 += 1
    print(s1)

def main():
    t = int(input())
    while t > 0:
        solve()
        t -= 1
if __name__ == '__main__':
    main()