# 3つの制約がある # sum(A) = sum(B)、これによりA1とB1の差が決まる # A1_max = sum(B2:)、もちろん下限は0 # B1_max = sum(A2:) # コーナーケースある、(a, b) = (0, 0)以外が複数個なければ答えは1 # さらにA1_min, B1_minもある N = int(input()) sumA, sumB = 0, 0 nonzero = 0 AB = [] for i in range(N-1): a, b = map(int, input().split()) AB.append((a, b)) sumA += a sumB += b if (a, b) != (0, 0): nonzero += 1 A1_max = sumB B1_max = sumA # A1_min, B1_minを探索 A1_min = 0 B1_min = 0 for i in range(N-1): A1_min = max(A1_min, AB[i][1]- (sumA-AB[i][0])) B1_min = max(B1_min, AB[i][0]- (sumB-AB[i][1])) #print(A1_min, B1_min) # 計算式でいけると思うが愚直にやった count = 0 for A1 in range(A1_min, A1_max+1): B1 = A1 + sumA - sumB #print('A1', A1, 'B1', B1, 0 <= B1 <= sumA) if B1_min <= B1 <= B1_max: count += 1 if nonzero <= 1: print(1) else: print(count)