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

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

상품

면접 대비

시간 제한2초메모리 제한256 MB

요약
순위가 있는 n개 팀에 사탕 d개를 나누어, 등수가 높은 팀의 1인당 사탕 수가 더 많고 총합이 정확히 d가 되도록 배분하거나 불가능함을 판정한다.
난이도

보통10점 중 4점

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

문제

안드레이 세르게예비치는 유치원에서 보육 교사로 일한다. 최근 그는 새로운 재미있는 게임을 생각해 냈고, 이 게임에 참가하기 위해 모든 아이들이 n개의 팀으로 나뉘었다. 게임 참가자 상품으로 안드레이 세르게예비치는 사탕 d개를 준비했다.

게임 결과 i등을 한 팀에는 정확히 xi명의 참가자가 있었다.

이제 안드레이 세르게예비치에게는 사탕을 나눠야 하는 어려운 과제가 있다. 다음 조건을 만족해야 한다.

  • 같은 팀의 모든 참가자는 사탕을 똑같이 받아야 한다. i등을 한 팀의 참가자가 ai개의 사탕을 받는다고 하자.
  • 모든 아이는 사탕을 최소 하나는 받아야 한다. ai > 0
  • 더 높은 등수를 한 팀의 참가자는 더 많은 사탕을 받아야 한다. i < j이면 ai > aj
  • 모든 사탕을 나눠야 한다. a1x1 + a2x2 + ... + anx**n = d

안드레이 세르게예비치가 아이들에게 사탕을 나눌 수 있도록 도와주거나, 불가능하다고 알려주자.

입력

첫째 줄에는 두 정수 n과 d가 주어진다. (1 ≤ n ≤ 100, 1 ≤ d ≤ 106) 둘째 줄에는 n개의 정수 x1, ..., xn이 주어진다. (모든 i에 대해 1 ≤ xi ≤ 100, 1 ≤ i ≤ n)

출력

사탕을 나눌 수 있으면 첫째 줄에 YES를, 둘째 줄에 n개의 정수 a1, a2, ..., a**n을 출력한다. 주어진 방법으로 사탕을 나눌 수 없으면 NO를 출력한다.

예제2

  1. 예제 1

    입력
    2 100
    2 1
    
    예상 출력
    YES
    34 32
    
  2. 예제 2

    입력
    2 6
    2 1
    
    예상 출력
    NO