結果

問題 No.172 UFOを捕まえろ
ユーザー data9824
提出日時 2016-10-02 04:39:34
言語 C++11(廃止可能性あり)
(gcc 13.3.0)
結果
AC  
実行時間 2 ms / 5,000 ms
コード長 744 bytes
コンパイル時間 543 ms
コンパイル使用メモリ 54,724 KB
実行使用メモリ 5,248 KB
最終ジャッジ日時 2024-11-21 12:54:17
合計ジャッジ時間 1,354 ms
ジャッジサーバーID
(参考情報)
judge5 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 21
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <iostream>
#include <stdlib.h>

using namespace std;

int main() {
	int x, y, r;
	cin >> x >> y >> r;
	/*
		第1象限の結界の直線: y=-x+d
		第1象限のUFOの円: (x-X)^2+(y-Y)^2=r^2
		両者の交点が存在しないかを求める。
			(x-X)^2+(-x+d-Y)^2=r^2
			x^2-2Xx+X^2+x^2-2(d-Y)x+(d-Y)^2=r^2
			2x^2+(-2X-2(d-Y))x+X^2+(d-Y)^2-r^2=0
		以下が成立するとき、交点が存在しない。
			a:=2
			b:=-2X-2(d-Y)
			c:=X^2+(d-Y)^2-r^2
			b^2-4ac<0
	*/
	x = abs(x);
	y = abs(y);
	for (int result = x + y; ; ++result) {
		double a = 2;
		double b = -2 * x - 2 * (result - y);
		double c = x * x + (result - y) * (result - y) - r * r;
		if (b * b - 4 * a * c < 0.) {
			cout << result << endl;
			return 0;
		}
	}
}
0