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

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

Klothes

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

요약
1부터 n까지의 서로 다른 가격 중 정확히 k개를 골라 합이 s가 되게 만들 수 있는지 판정하고, 가능하면 그 선택을 0과 1로 이루어진 문자열로 출력한다.
난이도

보통10점 중 6점

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

문제

스머프답지 않은 날이다! 스머페트는 누군가(아마도 조키 스머프)가 자신의 옷을 전부 훔쳐 갔다는 사실을 방금 알았고, 새 옷을 사야 한다. 상점에는 nn벌의 옷이 있고, 각각 11부터 nn 스머프코인까지 서로 다른 정수 가격이 붙어 있다. 옷의 스머프다움은 가격에 비례하므로 스머페트는 자신이 가진 ss 스머프코인을 전부 쓰고 싶어 한다. 하지만 옷장에는 옷이 kk벌밖에 들어가지 않으므로 정확히 kk벌을 사야 한다(옷장에 빈 자리가 남는 것은 그녀의 이미지에 좋지 않다).

입력

입력의 첫 줄에는 테스트 케이스의 수 tt가 주어진다(t≤8000t \leq 8000). 각 테스트 케이스는 정수 nn, ss, kk가 공백으로 구분되어 있는 한 줄로 이루어진다(1≤k≤n≤40 0001 \leq k \leq n \leq 40\,000, 0≤s≤1090 \leq s \leq 10^9). nn은 상점에 있는 옷의 수, kk는 스머페트가 사려는 옷의 수, ss는 그녀가 쓰려는 스머프코인의 양이다.

출력

각 테스트 케이스마다 가격의 합이 ss가 되도록 kk벌의 옷을 살 수 있으면 한 줄에 "YES"(따옴표 제외)를, 아니면 "NO"를 출력한다. 답이 "YES"이면 그다음 줄에 nn자리 문자열 aia_i를 출력한다. aia_i는 스머페트가 가격 ii인 옷을 사야 하면 11, 그렇지 않으면 00이다.

예제1

  1. 예제 1

    입력
    3
    3 6 2
    5 7 3
    1 1 1
    
    예상 출력
    NO
    YES
    11010
    YES
    1