# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
949762 | rainboy | 직사각형 게임 (KPI13_game) | C++17 | 1 ms | 604 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <math.h>
#include <stdio.h>
#define eps 1e-9
double abs_(double a) { return a > 0 ? a : -a; }
int main() {
double alpha, beta, z;
int a, b, c, d, tmp, first;
scanf("%d%d%d%d", &a, &b, &c, &d), z = hypot(c, d);
if (a < b)
tmp = a, a = b, b = tmp;
if (c < d)
tmp = c, c = d, d = tmp;
alpha = atan2(d, c) * 2;
first = 0;
if (b >= z)
first = 1;
else if (a * a + b * b < c * c + d * d)
first = 0;
else {
if (b * b <= c * c + d * d) {
beta = asin((double) b / z);
if (abs_(z * cos(beta + alpha)) <= a + eps && abs_(z * sin(beta + alpha)) <= b + eps)
first = 1;
if (abs_(z * cos(beta - alpha)) <= a + eps && abs_(z * sin(beta - alpha)) <= b + eps)
first = 1;
}
if (a * a <= c * c + d * d) {
beta = acos((double) a / z);
if (abs_(z * cos(beta + alpha)) <= a + eps && abs_(z * sin(beta + alpha)) <= b + eps)
first = 1;
if (abs_(z * cos(beta - alpha)) <= a + eps && abs_(z * sin(beta - alpha)) <= b + eps)
first = 1;
}
}
printf(first ? "First\n" : "Second\n");
return 0;
}
컴파일 시 표준 에러 (stderr) 메시지
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |