만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

작업장

면접 대비

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

요약
n개의 부품과 두 대의 동일한 기계가 주어질 때, 모든 부품을 제한 시간 T 안에 두 기계에 배정할 수 있는지 판정한다.
난이도

보통10점 중 5점

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

문제

작업장에 똑같은 기계 두 대가 있고, 이 기계들은 여러 부품을 가공한다. 부품의 개수는 nn개이며, 모두 TT 시간 단위 이내에 가공을 마쳐야 한다. ii번째 부품의 가공 시간은 tit_i이고, i=1,…,ni = 1, \dots, n이며, 두 기계에서 모두 같다.

프로그램 workshop을 작성하여, 주어진 시간 TT 안에 모든 부품의 가공을 마칠 수 있는 일정이 존재하는지 판별하시오. 부품을 기계에 올리거나 다음 부품으로 바꾸는 데 걸리는 시간은 없으며, 이는 즉시 이루어진다.

입력

첫째 줄에는 프로그램이 일정을 만들 수 있는지 검사해야 하는 부품 묶음의 개수가 주어진다. 각 묶음의 데이터는 두 줄에 걸쳐 주어진다. 그중 첫째 줄에는 TT와 nn이 공백으로 구분되어 주어진다. 둘째 줄에는 t1,t2,…,tnt_1, t_2, \dots, t_n이 공백으로 구분되어 주어진다.

출력

프로그램은 입력에 주어진 묶음의 개수만큼 줄을 출력해야 한다. 각 줄에는 해당 묶음에 대해 원하는 일정을 만들 수 있으면 1, 만들 수 없으면 0을 출력한다.

제한

  • 입력의 모든 수는 양의 정수이다. 부품 묶음의 개수는 10을 넘지 않는다.
  • 0<T<200 0010 < T < 200\,001
  • 0<n<1 0010 < n < 1\,001
  • 0<ti<1010 < t_i < 101, i=1,2,…,ni = 1, 2, \dots, n

예제1

  1. 예제 1

    입력
    3
    2 3
    5 6 7
    5 4
    2 3 2 3
    5 4
    1 3 3 3
    
    예상 출력
    0
    1
    0