Lang:Python2
Edit12345678910111213141516171819202122232425262728293031def gcd(A, B):while A%B:A, B = B, A%Breturn Bdef extend_gcd(A, B):if A%B == 0:return 0, 1tempX, tempY = extend_gcd(B, A%B)x = tempYy = tempX - (A/B) * tempYreturn (x, y)while True:try:N = int(raw_input())m, r = [], []for n in xrange(N):mm, rr = (int(i) for i in raw_input().split())m.append(mm)r.append(rr)M, R = m[0], r[0]for n in xrange(1, N):d = gcd(M, m[n])c = r[n] - Rif c % d:print -1k1, k2 = extend_gcd(M/d, m[n]/d)k1 = (c/d*k1)%(m[n]/d)R += k1*MM = M/d*m[n]