#yukicoder 3154 convex polygon judge #Convex Hull: 凸包を求める SortedP: (x, y)を辞書順昇順に並べた点群 def Convex_Hull(SortedP): outer_product = lambda x1, y1, x2, y2: x1 * y2 - x2 * y1 stack = [] for x, y in SortedP: #上側凸包 while len(stack) > 1: x1, y1 = stack[-2] x2, y2 = stack[-1] if outer_product(x2 - x1, y2 - y1, x - x2, y - y2) >= 0: stack.pop() # > を >= にすると経路上の点を削除できる else: break stack.append((x, y)) T = len(stack) for x, y in SortedP[-2::-1]: #下側凸包 while len(stack) > T: x1, y1 = stack[-2] x2, y2 = stack[-1] if outer_product(x2 - x1, y2 - y1, x - x2, y - y2) >= 0: stack.pop() else: break stack.append((x, y)) return stack[:-1] #テスト1: 凸包貼るだけ N = int(input()) P = [tuple(map(int, input().split())) for _ in range(N)] print('Yes' if len( Convex_Hull(sorted(P)) ) == N else 'No')