AtCoder Beginner Contest 246 A

https://atcoder.jp/contests/abc246/tasks/abc246_a

第一感は、x座標で2回出てくる座標と1回出てくる座標があるので、1回出てくる方を取ればいいのだろう、というものでした。

# coding: utf-8
# Four Points

from collections import Counter
import sys


#################### library ####################

def read_tuple():
    return tuple(map(int, raw_input().split()))


#################### process ####################

def read_input():
    points = [ read_tuple() for _ in range(3) ]
    return points

def F(points):
    x_counter = Counter(x for x, y in points)
    y_counter = Counter(y for x, y in points)
    x = next(x for x, c in x_counter.items() if c == 1)
    y = next(y for y, c in y_counter.items() if c == 1)
    return ' '.join(map(str, (x, y)))


#################### main ####################

points = read_input()
print F(points)

しかし、なんか不自然な考え方ですよね。
もう少し一般的に考えましょう。3点で成す角度が直角である並びを見つければよいです。そうすれば、第4の点はベクトル計算で求められます。

# coding: utf-8
# Four Points

from itertools import permutations


#################### library ####################

def read_tuple():
    return tuple(map(int, raw_input().split()))


#################### process ####################

def read_input():
    points = [ read_tuple() for _ in range(3) ]
    return points

def add_vec((x1, y1), (x2, y2)):
    return (x1 + x2, y1 + y2)

def sub_vec((x1, y1), (x2, y2)):
    return (x1 - x2, y1 - y2)

def inner_product((x1, y1), (x2, y2)):
    return x1 * x2 + y1 * y2

def is_right_angle(pt1, pt2, pt3):
    return inner_product(sub_vec(pt2, pt1), sub_vec(pt3, pt1)) == 0

def F(points):
    for pt1, pt2, pt3 in permutations(points):
        if is_right_angle(pt1, pt2, pt3):
            pt4 = add_vec(pt1, add_vec(sub_vec(pt2, pt1), sub_vec(pt3, pt1)))
            return ' '.join(map(str, pt4))


#################### main ####################

points = read_input()
print F(points)

コード長いし、permutationsは3つ出せばいいところを6つ出していますね。
Python3ですが、NumPyを使えば短くなりますね。

# coding: utf-8
# Four Points

from itertools import permutations
import numpy as np


#################### library ####################

def read_tuple():
    return tuple(map(int, input().split()))


#################### process ####################

def read_input():
    points = [ np.array(read_tuple()) for _ in range(3) ]
    return points

def F(points):
    for pt1, pt2, pt3 in permutations(points):
        if np.dot(pt2 - pt1, pt3 - pt1) == 0:
            pt4 = pt1 + (pt2 - pt1) + (pt3 - pt1)
            return ' '.join(map(str, pt4))


#################### main ####################

points = read_input()
print(F(points))