結果
問題 | No.55 正方形を描くだけの簡単なお仕事です。 |
ユーザー |
![]() |
提出日時 | 2020-11-06 11:20:06 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 2 ms / 5,000 ms |
コード長 | 1,491 bytes |
コンパイル時間 | 1,211 ms |
コンパイル使用メモリ | 120,600 KB |
最終ジャッジ日時 | 2025-01-15 20:01:47 |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 21 |
ソースコード
#include<iostream>#include<iomanip>#include<limits>#include<stdio.h>#include<math.h>#include<algorithm>#include<queue>#include<deque>#include<stack>#include<string>#include<string.h>#include<vector>#include<set>#include<map>#include<bitset>#include<stdlib.h>#include<cassert>#include<time.h>#include<bitset>#include<numeric>#include<unordered_set>#include<unordered_map>#include<complex>using namespace std;typedef long long ll;const int mod = 1e9 + 7;const ll infll = (1LL << 62) - 1;const int inf = (1 << 30) - 1;#define rep(i,n) for (int i=0; i < (n); i++)typedef double D; // 座標値の型。doubleかlong doubleを想定typedef complex<D> P; // Pointtypedef pair<P, P> L; // Linetypedef vector<P> VP;const D EPS = 1e-9; // 許容誤差。問題によって変える#define X real()#define Y imag()#define LE(n,m) ((n) < (m) + EPS)#define GE(n,m) ((n) + EPS > (m))#define EQ(n,m) (abs((n)-(m)) < EPS)D dot(P a, P b) {return (conj(a)*b).X;}int main(){cout << fixed << setprecision(10);vector<int>x(6);rep(i,6)cin >> x[i];VP pt(3);rep(i,3)pt[i]=P(x[2*i],x[2*i+1]);rep(i,3){P v1=pt[(i+1)%3]-pt[i],v2=pt[(i+2)%3]-pt[i];if(EQ(dot(v1,v2),0)){if(EQ(norm(v1),norm(v2))){P ans = pt[i]+v1+v2;cout << (int)ans.real() << " " << (int)ans.imag() << endl;return 0;}}}cout << -1 << endl;return 0;}