Amazing Sushi

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

요약
n가지 초밥 종류의 개수와 두 사람이 먹을 수 있는 조각 수 범위가 주어질 때, 각 종류를 공평하게 나누고 남는 조각 없이 두 사람 모두 범위를 지키도록 분배할 수 있는지 판정한다.
난이도

보통10점 중 6점

유형
그리디, 수학, 동적 계획법, 구현
정답자
아직 제출이 없습니다

문제

Mary와 Marty는 Marvelous Marble Machine을 가지고 놀다가 배가 고파졌다. 그래서 초밥을 주문하기로 했다. 초밥에는 여러 종류가 있다. 초밥 접시에는 여러 종류의 초밥이 담겨 있다. 한 종류가 여러 개 담겨 있을 수도 있다.

Mary와 Marty는 각자 먹을 수 있는 초밥 개수의 범위를 알고 있다. 두 사람 모두 너무 적게도, 너무 많이도 먹지 않으면서 남기는 초밥이 없도록 초밥을 나눌 수 있는 방법이 있는지 알아보려고 한다. 공평하게 나누기 위해 Mary와 Marty는 각 종류마다 초밥 개수의 절반씩 먹으려고 한다. 어떤 종류의 초밥 개수가 홀수라면, 남는 한 개는 둘 중 아무나 먹어도 된다.

Mary와 Marty가 초밥을 알맞게 나눌 수 있는 방법이 존재하는가?

입력

첫째 줄에 초밥 종류의 수를 나타내는 정수 n (1 ≤ n ≤ 100)이 주어진다.

둘째 줄에는 Mary가 먹을 수 있는 초밥 개수의 범위가 주어진다. 이 줄에는 두 정수 x1 (0 ≤ x1 ≤ 100 000)과 y1 (x1 ≤ y1 ≤ 100 000)이 주어진다. Mary는 초밥을 최소 x1개, 최대 y1개 먹어야 한다.

셋째 줄에는 Marty가 먹을 수 있는 초밥 개수의 범위가 주어진다. 이 줄에는 두 정수 x2 (0 ≤ x2 ≤ 100 000)과 y2 (x2 ≤ y2 ≤ 100 000)이 주어진다. Marty는 초밥을 최소 x2개, 최대 y2개 먹어야 한다.

다음 n개의 줄에는 Mary와 Marty의 접시에 있는 n가지 초밥 종류가 주어진다. 각 줄에는 정수 m (1 ≤ m ≤ 1 000)이 하나씩 주어지며, 이는 해당 종류의 초밥 개수이다.

출력

Mary와 Marty가 초밥을 알맞게 나눌 수 있는 방법이 존재하면 Yes를, 그렇지 않으면 No를 출력한다.

예제3

  1. 예제 1

    입력
    3
    1 10
    7 20
    5
    3
    1
    
    예상 출력
    No
    
  2. 예제 2

    입력
    3
    1 10
    3 20
    5
    3
    14
    
    예상 출력
    Yes
    
  3. 예제 3

    입력
    3
    1 10
    3 20
    5
    3
    16
    
    예상 출력
    No