結果

問題 No.2790 Athena 3
ユーザー _a_a
提出日時 2024-06-21 22:45:13
言語 Python3
(3.13.1 + numpy 2.2.1 + scipy 1.14.1)
結果
AC  
実行時間 39 ms / 2,000 ms
コード長 2,311 bytes
コンパイル時間 274 ms
コンパイル使用メモリ 13,056 KB
実行使用メモリ 12,032 KB
最終ジャッジ日時 2024-06-21 22:45:15
合計ジャッジ時間 2,364 ms
ジャッジサーバーID
(参考情報)
judge4 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 14
権限があれば一括ダウンロードができます

ソースコード

diff #

import os, sys
import math, decimal, queue, heapq, bisect, itertools, functools, collections, string
from bisect import bisect, bisect_left
from collections import defaultdict, OrderedDict, deque, Counter
from functools import cmp_to_key, lru_cache, reduce
from heapq import heapify, heappush, heappushpop, heappop, heapreplace, nlargest, nsmallest
from itertools import accumulate, chain, combinations, combinations_with_replacement, compress, count, cycle, dropwhile, filterfalse, groupby, islice, permutations, product, repeat, starmap, takewhile, tee, zip_longest
from math import gcd, factorial, isqrt, comb, perm, prod, inf
from queue import Queue, PriorityQueue, LifoQueue
from string import ascii_letters, ascii_lowercase, ascii_uppercase, digits, hexdigits, octdigits

az, AZ, mod = ascii_lowercase, ascii_uppercase, 1_000_000_007


def solve():

    def _area(x1, y1, x2, y2, x3, y3):
        def area(x1, y1, x2, y2, x3, y3):
            return abs(x1 * (y2 - y3) + x2 * (y3 - y1) + x3 * (y1 - y2)) / 2

        coords = [
            (x1 + 1, y1), (x1 - 1, y1), (x1, y1 + 1), (x1, y1 - 1),
            (x2 + 1, y2), (x2 - 1, y2), (x2, y2 + 1), (x2, y2 - 1),
            (x3 + 1, y3), (x3 - 1, y3), (x3, y3 + 1), (x3, y3 - 1)
        ]

        max_area = 0
        for x1_mod, y1_mod in coords[:4]:
            for x2_mod, y2_mod in coords[4:8]:
                for x3_mod, y3_mod in coords[8:]:
                    max_area = max(max_area, area(x1_mod, y1_mod, x2_mod, y2_mod, x3_mod, y3_mod))

        return max_area

    def run(W):
        x1, y1, x2, y2, x3, y3 = W
        res = _area(x1, y1, x2, y2, x3, y3)

        return res
    print(run(W))


if __name__ == '__main__':
    LOCAL = sys.argv[0] if '4a' in sys.argv[0] else None

    P = lambda *p: [print(i, end='  ') for i in p] if LOCAL else None
    PI = lambda *p: print(' '.join(map(str, p))) or None
    PII = lambda X: [PI(*row) for row in X]

    sys.stdin = open(os.path.join(os.getcwd(), 'a1.txt'), 'r') if LOCAL else sys.stdin
    I = lambda: [int(a) for l in sys.stdin for a in l.strip().split()]
    S = lambda: [a for l in sys.stdin for a in l.strip().split()]
    IM = lambda: [[int(a) for a in l.split()] for l in sys.stdin]
    SM = lambda: [[a for a in l.split()] for l in sys.stdin]
    W = I()
    # P(W)
    solve()
0