結果

問題 No.172 UFOを捕まえろ
ユーザー data9824
提出日時 2016-10-02 04:39:34
言語 C++11
(gcc 4.8.5)
結果
AC  
実行時間 7 ms
コード長 744 Byte
コンパイル時間 347 ms
使用メモリ 1488 KB

テストケース

テストケース表示
入力 結果 実行時間
使用メモリ
challenge01.txt AC 5 ms
1488 KB
sample1.txt AC 5 ms
1484 KB
sample2.txt AC 3 ms
1488 KB
sample3.txt AC 3 ms
1488 KB
system_test1.txt AC 3 ms
1488 KB
system_test2.txt AC 3 ms
1484 KB
system_test3.txt AC 2 ms
1484 KB
system_test4.txt AC 7 ms
1484 KB
system_test5.txt AC 3 ms
1484 KB
system_test6.txt AC 3 ms
1488 KB
system_test7.txt AC 3 ms
1484 KB
system_test8.txt AC 4 ms
1484 KB
system_test9.txt AC 3 ms
1484 KB
system_test10.txt AC 3 ms
1488 KB
system_test11.txt AC 3 ms
1484 KB
system_test12.txt AC 2 ms
1484 KB
system_test13.txt AC 3 ms
1488 KB
system_test14.txt AC 3 ms
1488 KB
system_test15.txt AC 3 ms
1484 KB
system_test16.txt AC 4 ms
1488 KB
test1.txt AC 3 ms
1488 KB
test2.txt AC 3 ms
1484 KB
test3.txt AC 3 ms
1488 KB
test4.txt AC 3 ms
1488 KB
テストケース一括ダウンロード

ソースコード

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