結果

問題 No.55 正方形を描くだけの簡単なお仕事です。
ユーザー NotationNapNotationNap
提出日時 2015-05-15 08:09:53
言語 C++11
(gcc 11.4.0)
結果
AC  
実行時間 2 ms / 5,000 ms
コード長 855 bytes
コンパイル時間 1,316 ms
コンパイル使用メモリ 159,488 KB
実行使用メモリ 6,820 KB
最終ジャッジ日時 2024-11-14 13:49:44
合計ジャッジ時間 2,095 ms
ジャッジサーバーID
(参考情報)
judge5 / judge4
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 2 ms
6,816 KB
testcase_01 AC 2 ms
6,820 KB
testcase_02 AC 1 ms
6,816 KB
testcase_03 AC 2 ms
6,820 KB
testcase_04 AC 1 ms
6,816 KB
testcase_05 AC 1 ms
6,820 KB
testcase_06 AC 2 ms
6,816 KB
testcase_07 AC 1 ms
6,820 KB
testcase_08 AC 1 ms
6,816 KB
testcase_09 AC 2 ms
6,816 KB
testcase_10 AC 1 ms
6,820 KB
testcase_11 AC 2 ms
6,816 KB
testcase_12 AC 1 ms
6,816 KB
testcase_13 AC 2 ms
6,816 KB
testcase_14 AC 1 ms
6,820 KB
testcase_15 AC 1 ms
6,816 KB
testcase_16 AC 1 ms
6,816 KB
testcase_17 AC 2 ms
6,816 KB
testcase_18 AC 1 ms
6,820 KB
testcase_19 AC 2 ms
6,816 KB
testcase_20 AC 2 ms
6,820 KB
testcase_21 AC 1 ms
6,820 KB
testcase_22 AC 1 ms
6,820 KB
testcase_23 AC 2 ms
6,816 KB
testcase_24 AC 1 ms
6,820 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

#include "bits/stdc++.h"
using namespace std;

typedef long long Int;
#define REP(i,n) for(int (i)=0;(i)<(int)(n);++(i))

bool found;
int ansx;
int ansy;

int dd(int x, int y) {
	return x * x + y * y;
}

void f(int x0, int y0, int x1, int y1, int x2, int y2) {
	int dx1 = x1 - x0;
	int dy1 = y1 - y0;
	int dx2 = x2 - x0;
	int dy2 = y2 - y0;
	int dd1 = dd(dx1, dy1);
	int dd2 = dd(dx2, dy2);
	if (dd1 > 0 && dd2 > 0 && dd1 == dd2) {
		if (dx1 * dx2 + dy1 * dy2 == 0) {
			found = true;
			int x3 = x0 + dx1 + dx2;
			int y3 = y0 + dy1 + dy2;
			ansx = x3;
			ansy = y3;
		}
	}

}

int main() {
	int X1, X2, X3;
	int Y1, Y2, Y3;
	cin >> X1 >> Y1;
	cin >> X2 >> Y2;
	cin >> X3 >> Y3;
	f(X1, Y1, X2, Y2, X3, Y3);
	f(X2, Y2, X3, Y3, X1, Y1);
	f(X3, Y3, X1, Y1, X2, Y2);
	if (found) {
		cout << ansx << " " << ansy << endl;
	}
	else {
		cout << -1 << endl;
	}
}
0