Cut the Triangle (Codeforces 1767A)
Tags: Implement, implementation

You are given a non-degenerate triangle (a non-degenerate triangle is a triangle with positive area). The vertices of the triangle have coordinates $$$(x_1, y_1)$$$, $$$(x_2, y_2)$$$ and $$$(x_3, y_3)$$$.You want to draw a straight line to cut the triangle into two non-degenerate triangles. Furthermore, the line you draw should be either horizontal or vertical.Can you draw the line to meet all the constraints?Here are some suitable ways to draw the line:  However, these ways to draw the line are not suitable (the first line cuts the triangle into a triangle and a quadrangle; the second line doesn't cut the triangle at all; the third line is neither horizontal nor vertical):  

Input: The first line contains one integer $$$t$$$ ($$$1 \le t \le 10^4$$$) — the number of test cases.Each test case consists of four lines. The first of them is empty. The $$$i$$$-th of the next three lines contains two integers $$$x_i$$$ and $$$y_i$$$ ($$$1 \le x_i, y_i \le 10^8$$$) — the coordinates of the $$$i$$$-th vertex of the triangle.Additional constraint on the input: in each test case, the triangle formed by three vertices has positive area (i. e. it is non-degenerate).

Output: For each test case, print YES if it is possible to cut the triangle according to the statement, or NO otherwise. You may print each letter in any case (YES, yes, Yes will all be recognized as positive answer, NO, no and nO will all be recognized as negative answer).


Sample Inputs:
4
4 7
6 8
3 5
4 5
4 7
6 8
5 8
1 8
2 5
3 6
6 6
6 3

Sample Outputs:
YES
YES
YES
NO

Solution (Python):
from sys import stdin
input = stdin.readline
for _ in range(int(input())):
    ele = input()
    xx = []
    yy = []
    for __ in 'XXX':
        (x, y) = input().split()
        xx.append(x)
        yy.append(y)
    print('NO' if len(set(xx)) < 3 and len(set(yy)) < 3 else 'YES')

Solution (Python):
import sys, math, cmath, time
from bisect import bisect_left
start_time = time.time()

def solve():
    s = input()
    l = []
    for i in range(3):
        (x, y) = map(int, input().split())
        l.append(x)
        l.append(y)
    if l[0] == l[2] or l[0] == l[4] or l[2] == l[4]:
        if l[3] == l[5] or l[1] == l[3] or l[5] == l[1]:
            print('NO')
            return
    print('YES')

def main():
    testcases = 1
    testcases = inp()
    for each_testcase in range(testcases):
        solve()

def inp():
    return int(input())

def inps():
    return input().split()
ONLINE_JUDGE = __debug__
if ONLINE_JUDGE:
    input = sys.stdin.readline
main()

Solution (Python):
class Solution:

    def __init__(self):
        pass

    def solve(self):
        t = int(input())
        result = []
        for i in range(t):
            dummy_line = input()
            (x1, y1) = map(int, input().split())
            (x2, y2) = map(int, input().split())
            (x3, y3) = map(int, input().split())
            if (x1 == x2 or x2 == x3 or x3 == x1) and (y1 == y2 or y2 == y3 or y3 == y1):
                result.append('NO')
            else:
                result.append('YES')
        for x in result:
            print(x)
if __name__ == '__main__':
    sol = Solution()
    sol.solve()