만드는 중입니다

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

아스가르드 탈출

면접 대비

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

요약
사람 그룹들을 A석 위층과 B석 아래층에 그룹 단위로 나눠 앉힐 수 있는지 확인하고, 1번 그룹을 위층에 둘 수 있는지 판단합니다.
난이도

보통10점 중 5점

유형
동적 계획법, 배열
정답자
아직 제출이 없습니다

문제

토르와 아스가르드의 다른 주민들은 그랜드마스터의 배를 타고 탈출하려고 한다. 하지만 먼저 모두가 배에 올라타야 한다.

배에는 두 개의 층이 있다. 위층에는 AA개의 좌석이 있고, 아래층에는 BB개의 좌석이 있다. 입구는 위층에 있다. 승선은 토르가 지휘한다. 다만 간단하지 않다. 주민들은 친구끼리 그룹을 이루고 있으며, 각 그룹은 대화를 편하게 하려고 두 층 중 한 층에 전원이 함께 앉기를 원한다. 토르는 첫 번째 그룹에 속한다. 토르가 승선을 지휘하므로 그의 그룹이 가장 마지막에 탄다. 출발이 늦어지지 않도록 그들은 위층에 앉기를 원한다.

모든 사람이 자리를 얻을 수 있도록 그룹을 두 층에 나눌 수 있는지 판단하라. 나눌 수 있다면, 토르의 그룹인 1번 그룹도 위층에 앉도록 나눌 수 있는지 판단하라.

입력

첫 줄에 정수 nn, AA, BB가 주어진다. 각각 그룹의 수, 위층의 좌석 수, 아래층의 좌석 수이다(1≤n≤1001 \le n \le 100, 1≤A,B≤1051 \le A, B \le 10^5). 다음 줄에는 각 그룹의 인원 수 aia_i가 nn개 주어진다(1≤ai≤10001 \le a_i \le 1000).

출력

모든 사람이 자리를 얻도록 그룹을 나눌 수 없다면 −1-1을 출력한다. 그렇지 않을 때, 1번 그룹을 위층에 앉힐 수 있다면 11을, 없다면 22를 출력한다. 다음 두 줄에는 위층, 아래층 순서로 각 층을 설명한다. 각 줄은 그 층에 앉는 그룹의 수를 먼저 쓰고, 이어서 그룹 번호를 쓴다. 그룹 번호는 입력 순서대로 1부터 매긴다.

예제1

  1. 예제 1

    입력
    3 4 3
    3 2 2
    
    예상 출력
    2
    2 2 3
    1 1