gjdms611   4년 전

```

int cross(P A, P B, P C, P D) {
int ab = CCW(A, B, C) * CCW(A, B, D);
int cd = CCW(C, D, A) * CCW(C, D, B);
int ax = A.first, ay = A.second, bx = B.first, by = B.second,
cx = C.first, cy = C.second, dx = D.first, dy = D.second;
if (ab == 0 && cd == 0) {
return min(ax, bx) >= max(cx, dx) && max(ax, bx) <= min(cx, dx) &&
min(ay, by) >= max(cy, dy) && max(ay, by) <= min(cy, dy);
}
return ab <= 0 && cd <= 0;
}

```

위 코드에서 if문 안의 return문을

  1. 실수로 min을 붙이지 않은채 제출

return min(ax, bx) >= max(cx, dx) && max(ax, bx) <= (cx, dx) && min(ay, by) >= max(cy, dy) && max(ay, by) <= (cy, dy);

2. 

return min(ax, bx) <= max(cx, dx) && max(ax, bx) >= min(cx, dx) && min(ay, by) <= max(cy, dy) && max(ay, by) >= min(cy, dy);

3. 다른문제 풀다가 부등호가 잘못된 것 같아 부등호를 바꿔서 다시 제출

return min(ax, bx) >= max(cx, dx) && max(ax, bx) <= min(cx, dx) && min(ay, by) >= max(cy, dy) && max(ay, by) <= min(cy, dy);

세 코드 모두 맞았습니다가 떴습니다...

min을 안붙여도 맞는건 뭔가 이상이 있는 것 같은데.. 아닌가요?ㅠㅠ

부등호 방향이 반대여도 모두 맞았습니다가 뜨는 이유가 무엇인지 궁금합니다.

댓글을 작성하려면 로그인해야 합니다.