아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

3차원 막대기 연결하기

면접 대비

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

요약
3차원의 시작점과 끝점, 그리고 여러 막대 길이가 주어질 때, 막대를 겹쳐도 되고 시작점과 끝점에 각각 막대 끝이 하나만 붙어도 된다는 조건에서 모든 막대를 이어 시작점과 끝점을 연결할 수 있는지 판정한다.
난이도

보통10점 중 5점

유형
그리디, 수학, 기하, 정렬
정답자
아직 제출이 없습니다

문제

3차원 좌표계에서 시작점과 끝점을 여러 길이의 막대기로 연결하려고 한다.

막대기는 서로 겹쳐질 수 있으며, 시작점에서 시작해 막대기를 하나씩 이어 붙여 끝점까지 연결한다.

주어진 막대기를 남김없이 전부 사용해서 시작점부터 끝점까지 정확히 이을 수 있는지 확인하자.

막대기의 양끝은 항상 시작점, 끝점, 또는 다른 막대기의 끝과 이어져 있어야 한다. 시작점이나 끝점에는 막대기 끝이 두 개 이상 연결될 수 없다.

막대기의 두께는 무시할 수 있을 만큼 작아서 서로 겹쳐 놓는 것도 가능하다.

입력

첫 줄에 좌표계의 시작점(X1, Y1, Z1)과 끝점(X2, Y2, Z2)이 주어진다.

둘째 줄에 막대기의 개수 N이 주어진다.

셋째 줄부터 N개의 막대기 길이를 나타내는 정수 K가 한 줄에 하나씩 주어진다.

출력

시작점에서 끝점까지 막대기들을 사용해 연결할 수 있으면 "YES", 불가능하면 "NO"를 출력한다.

제한

  • -1,000 ≤ X1, Y1, Z1, X2, Y2, Z2 ≤ 1,000
  • X1, Y1, Z1, X2, Y2, Z2는 모두 정수
  • 1 ≤ N ≤ 100
  • 1 ≤ K ≤ 100

예제4

  1. 예제 1

    입력
    0 0 0 5 4 7
    6
    1 1 1 1 1 1
    
    예상 출력
    NO
    
  2. 예제 2

    입력
    0 0 0 1 2 3
    10
    25 22 10 5 3 4 7 8 10 40
    
    예상 출력
    YES
    
  3. 예제 3

    입력
    0 0 0 0 0 1
    2
    1 2
    
    예상 출력
    YES
    
  4. 예제 4

    입력
    0 0 0 0 0 2
    3
    1 1 100
    
    예상 출력
    NO