Buggy python submission (verdict: Runtime Error):
import math

N  = int(raw_input())

T, A = map(float, raw_input().split())

for i in range(N - 1):
    t, a = map(float, raw_input().split())

    s1 = math.ceil(T / t)

    s2 = math.ceil(A / a)

    s = max(s1, s2)

    T = s * t
    A = s * a

print "%d" % T + A

Fixed submission:
N  = int(raw_input())

ans = [0, 0]
T, A = [0] * 1001, [0] * 1001

for i in range(N):
    T[i], A[i] = map(int, raw_input().split())

    if i != 0 and T[i - 1] - T[i] > 0 or A[i - 1] - A[i] > 0:

        if (T[i  - 1] / T[i]) > (A[i - 1] / A[i]):
            m  = T[i  - 1] / T[i]
            if T[i - 1] % T[i] != 0:
                m += 1 

        else:
            m = A[i - 1] / A[i]
            if A[i - 1] % A[i] != 0:
                m += 1

        T[i] *= m
        A[i] *= m

    ans = [T[i], A[i]]

print sum(ans)

Buggy python submission (verdict: Runtime Error):
import math

N  = int(raw_input())

ans = [0, 0]

T, A = [0] * 1001, [0] * 1001

for i in range(N):

    T[i], A[i] = map(float, raw_input().split())

    if i != 0 and T[i - 1] - T[i] >= 0 or A[i - 1] - A[i] >= 0:

        if (math.ceil(T[i  - 1] / T[i]) >= (math.ceil(A[i - 1] / A[i])):
            m  = math.ceil(T[i  - 1] / T[i]) 

        else:
            m = math.ceil(A[i - 1] / A[i])

        T[i] *= m
        A[i] *= m

    ans = [T[i], A[i]]

print "%d" % sum(ans)

Fixed submission:
N  = int(raw_input())

ans = [0, 0]
T, A = [0] * 1001, [0] * 1001

for i in range(N):
    T[i], A[i] = map(int, raw_input().split())

    if i != 0 and T[i - 1] - T[i] > 0 or A[i - 1] - A[i] > 0:

        if (T[i  - 1] / T[i]) > (A[i - 1] / A[i]):
            m  = T[i  - 1] / T[i]
            if T[i - 1] % T[i] != 0:
                m += 1 

        else:
            m = A[i - 1] / A[i]
            if A[i - 1] % A[i] != 0:
                m += 1

        T[i] *= m
        A[i] *= m

    ans = [T[i], A[i]]

print sum(ans)

Buggy python submission (verdict: Runtime Error):
import math

N  = int(raw_input())

ans = [0, 0]
T, A = [0] * 1001, [0] * 1001

for i in range(N):
    T[i], A[i] = map(float, raw_input().split())

    if (i != 0) and ((T[i - 1] - T[i] > 0) or (A[i - 1] - A[i] > 0)):

        if (T[i  - 1] / T[i]) > (A[i - 1] / A[i]):
            m  = math.ceil(T[i  - 1] / T[i]) 

        else:
            m = math.ceil(A[i - 1] / A[i])

        T[i] *= m
        A[i] *= m

    ans = [T[i], A[i]]

    T[i] /= m
    A[i] /= m

print "%d" % sum(ans)

Fixed submission:
N  = int(raw_input())

ans = [0, 0]
T, A = [0] * 1001, [0] * 1001

for i in range(N):
    T[i], A[i] = map(int, raw_input().split())

    if i != 0 and T[i - 1] - T[i] > 0 or A[i - 1] - A[i] > 0:

        if (T[i  - 1] / T[i]) > (A[i - 1] / A[i]):
            m  = T[i  - 1] / T[i]
            if T[i - 1] % T[i] != 0:
                m += 1 

        else:
            m = A[i - 1] / A[i]
            if A[i - 1] % A[i] != 0:
                m += 1

        T[i] *= m
        A[i] *= m

    ans = [T[i], A[i]]

print sum(ans)

Buggy python submission (verdict: Runtime Error):
import math

N  = int(raw_input())

ans = []
T, A = [0] * 1000, [0] * 1000

for i in range(N):
    T[i], A[i] = map(int, raw_input().split())

    if (i != 0) and ((T[i -1] - T[i] > 0) or (A[i - 1] - A[i] > 0)):

            if (T[i -1] / T[i]) > (A[i - 1] / A[i]):
                m  = math.ceil(T[i -1] / T[i]) 

            else:
                m = math.ceil(A[i - 1] / A[i])

            T[i] *= m
            A[i] *= m

        ans = [T[i], A[i]]

print "%d" % sum(ans)

Fixed submission:
N  = int(raw_input())

ans = [0, 0]
T, A = [0] * 1001, [0] * 1001

for i in range(N):
    T[i], A[i] = map(int, raw_input().split())

    if i != 0 and T[i - 1] - T[i] > 0 or A[i - 1] - A[i] > 0:

        if (T[i  - 1] / T[i]) > (A[i - 1] / A[i]):
            m  = T[i  - 1] / T[i]
            if T[i - 1] % T[i] != 0:
                m += 1 

        else:
            m = A[i - 1] / A[i]
            if A[i - 1] % A[i] != 0:
                m += 1

        T[i] *= m
        A[i] *= m

    ans = [T[i], A[i]]

print sum(ans)

Buggy python submission (verdict: Time Limit Exceeded):
N  = int(raw_input())

ans = []
T, A = [0] * 1000, [0] * 1000

for i in range(N):
    T[i], A[i] = map(int, raw_input().split())

    ans = [T[i], A[i]]

    j = 2

    if i != 0:
        while T[i] < T[i -1] or A[i] < A[i -1]:
            T[i] *= j
            A[i] *= j
            if T[i] < T[i -1] or A[i] < A[i -1]:
                T[i] /= j
                A[i] /= j
            j += 1
        ans = [T[i], A[i]]

print sum(ans)

Fixed submission:
N  = int(raw_input())

ans = [0, 0]
T, A = [0] * 1001, [0] * 1001

for i in range(N):
    T[i], A[i] = map(int, raw_input().split())

    if i != 0 and T[i - 1] - T[i] > 0 or A[i - 1] - A[i] > 0:

        if (T[i  - 1] / T[i]) > (A[i - 1] / A[i]):
            m  = T[i  - 1] / T[i]
            if T[i - 1] % T[i] != 0:
                m += 1 

        else:
            m = A[i - 1] / A[i]
            if A[i - 1] % A[i] != 0:
                m += 1

        T[i] *= m
        A[i] *= m

    ans = [T[i], A[i]]

print sum(ans)