結果
問題 |
No.471 直列回転機
|
ユーザー |
![]() |
提出日時 | 2017-03-21 16:57:43 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,173 bytes |
コンパイル時間 | 165 ms |
コンパイル使用メモリ | 12,800 KB |
実行使用メモリ | 35,408 KB |
平均クエリ数 | 19588.37 |
最終ジャッジ日時 | 2024-07-16 12:28:24 |
合計ジャッジ時間 | 31,843 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 2 WA * 56 |
ソースコード
# -*- coding: utf-8 -*- def idou(x,y,dx,dy): x = x + dx y = y + dy return x,y def Kaiten(x,y,t): if t == 90: x2 = -y y2 = x return x2,y2 elif t == 180: x2 = -x y2 = -y return x2,y2 elif t == 270: x2 = y y2 = -x return x2,y2 elif t == 0: return x,y M = int(input()) P = [] for m in range(M): x,y = map(int,input().split()) P.append([x,y]) print("?",P[0][0],P[0][1],flush = True) x1,y1 = map(int,input().split()) dx = x1 - P[0][0] dy = y1 - P[0][1] if M == 1: print("!",flush =True) print(x1,y1,flush = True) elif M > 1: print("?",P[1][0],P[1][1],flush = True) x2,y2 = map(int,input().split()) arg = [P[0][0] - P[1][0],P[0][1] - P[1][1],x1 - x2, y1 - y2] if arg[0] == arg[2] and arg[1] == arg[3]: kaiten = 0 elif arg[0] == arg[3] and arg[1] == -arg[2]: kaiten = 90 elif arg[0] == -arg[3] and arg[1] == arg[2]: kaiten = 270 elif arg[0] == -arg[2] and arg[1] == -arg[3]: kaiten = 180 for p in P: a,b = P[0][0],P[0][1] p[0],p[1] = idou(p[0],p[1],a,b) for p in P: p[0],p[1] = Kaiten(p[0],p[1],kaiten) for p in P: p[0],p[1] = idou(p[0],p[1],x1,y1) print("!",flush = True) for p in P: print(p[0],p[1],flush = True)