자율주행 자동차

시간 제한1초메모리 제한512 MB

요약
격자 도시에서 두 직사각형 자동차가 각자 일정한 속력으로 t초 동안 이동할 때, 양의 넓이로 겹치는 순간이 있는지 판정한다. 모서리나 변만 닿는 경우는 충돌로 보지 않는다.
난이도

보통10점 중 7점

유형
기하, 구현, 수학, 시뮬레이션
정답자
아직 제출이 없습니다

문제

당신은 자율주행 자동차 회사 Wayber의 엔지니어로 일한다. Wayber는 방금 스웨덴 정부로부터 자사 자동차가 스톡홀름 거리를 주행해도 된다는 승인을 받았다. 안타깝게도 지금까지의 모든 테스트는 비포장 폐쇄 트랙에서 한 대씩만 진행했다. 두 대의 자동차가 도심에서 서로 마주칠 때 무슨 일이 벌어질지는 사실 준비가 안 되어 있고, 이 상황을 처리할 코드를 작성하려 한다.

자동차들은 차선을 지키고 회전하는 일은 이미 잘한다. 하지만 다른 움직이는 차량을 감지하는 일은 그리 잘하지 못한다. 다행히 스웨덴 정부는 자율주행 자동차에 열광한 나머지 스톡홀름에서 사람이 운전하는 자동차, 자전거, 보행을 포함한 다른 모든 교통수단을 금지했다. 두 대의 자동차가 충돌할지 여부만 감지할 수 있다면 안전한 시스템을 만들 수 있다.

모든 도시는 완벽한 격자 모양의 남북 및 동서 방향 도로로만 이루어져 있고, 모든 자동차는 완벽한 직육면체라고 가정한다. 충돌을 감지할 때는 회전하지 않고 일정한 속도로 주행하는 자동차만 고려하면 된다.

그림 B.1: 예제 입력 1의 그림.

입력

첫 줄에 정수 1≤t≤1041 \le t \le 10^4가 주어지며, 이는 두 자동차의 궤적 지속 시간(초)이다. 그다음 두 자동차의 궤적이 이어진다.

하나의 궤적은 문자 dd와 다섯 개의 정수 xx, yy, ss, ww, ll이 있는 한 줄로 이루어진다. 자동차의 시작 위치는 (x,y)(x, y) (0≤x,y≤1040 \le x, y \le 10^4)이고, 방향 dd는 N (양의 yy 방향), S (음의 yy 방향), W (음의 xx 방향), E (양의 xx 방향) 중 하나이다. 자동차는 초당 1≤s≤1041 \le s \le 10^4 단위의 속도로 주행하고, 너비는 1≤w≤1041 \le w \le 10^4 단위, 길이는 1≤l≤1041 \le l \le 10^4 단위이다.

자동차의 중심은 시작 좌표에 있고 처음에는 넓이가 0이 아닌 영역에서 겹치지 않는다.

출력

각 입력 줄마다 두 자동차가 충돌하면 “crash”를, 충돌하지 않으면 “safe”를 한 줄에 출력한다. 두 자동차가 넓이 0인 영역(모서리나 꼭짓점에서만)에서 겹치면 충돌하지 않은 것으로 본다.

예제4

  1. 예제 1

    입력
    5
    E 0 0 2 1 2
    S 3 2 1 1 3
    
    예상 출력
    crash
    
  2. 예제 2

    입력
    1
    E 0 0 1 1 1
    N 0 2 1 1 1
    
    예상 출력
    safe
    
  3. 예제 3

    입력
    2
    N 0 0 7 3 1
    S 3 20 12 4 1
    
    예상 출력
    crash
    
  4. 예제 4

    입력
    1
    N 0 0 7 3 1
    S 3 20 12 4 1
    
    예상 출력
    safe