結果
問題 | No.760 Where am I moved to? |
ユーザー |
![]() |
提出日時 | 2022-02-03 01:12:06 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 35 ms / 2,000 ms |
コード長 | 1,908 bytes |
コンパイル時間 | 172 ms |
コンパイル使用メモリ | 12,928 KB |
実行使用メモリ | 11,264 KB |
最終ジャッジ日時 | 2024-06-11 09:40:44 |
合計ジャッジ時間 | 7,751 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 11 |
ソースコード
import syssys.setrecursionlimit(200005)int1 = lambda x: int(x)-1pDB = lambda *x: print(*x, end="\n", file=sys.stderr)p2D = lambda x: print(*x, sep="\n", end="\n\n", file=sys.stderr)def II(): return int(sys.stdin.readline())def LI(): return list(map(int, sys.stdin.readline().split()))def LLI(rows_number): return [LI() for _ in range(rows_number)]def LI1(): return list(map(int1, sys.stdin.readline().split()))def LLI1(rows_number): return [LI1() for _ in range(rows_number)]def SI(): return sys.stdin.readline().rstrip()# dij = [(0, 1), (-1, 0), (0, -1), (1, 0)]# dij = [(0, 1), (-1, 0), (0, -1), (1, 0), (1, 1), (1, -1), (-1, 1), (-1, -1)]# inf = (1 << 63)-1inf = (1 << 32)-1# md = 10**9+7md = 998244353def FI(): return list(map(float, sys.stdin.readline().split()))class p:def __init__(self, x, y=None):if y == None: x, y = x[0], x[1]self.x = xself.y = ydef __repr__(self):return "("+str(self.x)+" "+str(self.y)+")"def __add__(self, other):return p(self.x+other.x, self.y+other.y)def __sub__(self, other):return p(self.x-other.x, self.y-other.y)def __truediv__(self, other):return p(self.x/other, self.y/other)def norm(self):return (self.x**2+self.y**2)**0.5def arg(self):return atan2(self.y, self.x)def rot(self, cen, rad):res = p(self.x, self.y)tmp = res-cend = tmp.norm()a = tmp.arg()+radreturn p(d*cos(a), d*sin(a))+cenfrom math import *def angle(r1, r2, m1, m2):rg = (r1+r2)/2mg = (m1+m2)/2r1 = r1-rgm1 = m1-mgra = r1.arg()ma = m1.arg()return ra-masx, sy, sd = FI()s = p(sx, sy)r1 = p(FI())r2 = p(FI())m1 = p(FI())m2 = p(FI())a = angle(r1, r2, m1, m2)m1 = m1.rot(s, a)m2 = m2.rot(s, a)# print(r1-m1,r2-m2)sd += degrees(a)s = s+r1-m1print(s.x, s.y, sd)