結果
問題 |
No.471 直列回転機
|
ユーザー |
![]() |
提出日時 | 2017-03-21 17:27:14 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 891 ms / 3,141 ms |
コード長 | 1,203 bytes |
コンパイル時間 | 396 ms |
コンパイル使用メモリ | 82,304 KB |
実行使用メモリ | 99,168 KB |
平均クエリ数 | 19588.37 |
最終ジャッジ日時 | 2024-06-11 10:35:38 |
合計ジャッジ時間 | 28,476 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 58 |
ソースコード
# -*- coding: utf-8 -*- def idou(x,y,dx,dy): x2 = x + dx y2 = y + dy return x2,y2 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()) 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 a,b = P[0][0],P[0][1] for i,p in enumerate(P): P[i][0],P[i][1] = idou(p[0],p[1],-a,-b) for i,p in enumerate(P): P[i][0],P[i][1] = Kaiten(p[0],p[1],kaiten) for i,p in enumerate(P): P[i][0],P[i][1] = idou(p[0],p[1],x1,y1) print("!",flush = True) for p in P: print(p[0],p[1],flush = True)