에띠가 기획하고 있는 새로운 게임에는 몬스터 농장이라는 시스템이 있다. 이 시스템에서 몬스터들은 여러 마리 있을 수 있으며, 좌우 방향 일렬로 배치되어 있다.
이 게임의 유저는 다음의 두 스킬 중 하나로 몬스터 농장에 있는 몬스터의 구성을 바꿀 수 있다.
-
): 연속된 구간에 있는 몬스터를 고른다. 구간에는 몬스터가 마리 이상 있어야 하며, 몬스터의 레벨은 구간에서 증가해야 한다. 해당 몬스터를 전부 없앤다.+
): 각 몬스터의 레벨이 이상 이하인 정수이고, 레벨이 증가하도록 연속된 구간에 추가한다. 소환하는 몬스터는 마리 이상이어야 한다.단, 몬스터의 레벨이 증가한다는 의미는, 오른쪽에 있는 몬스터의 레벨이 왼쪽에 있는 몬스터의 레벨보다 크다는 의미이다. 몬스터를 한 마리만 선택한 경우도 몬스터의 레벨이 증가한다고 생각한다.
예를 들어, 이고 이며, 현재 몬스터의 레벨이 왼쪽부터 라고 하자. 여기서 연속 소환을 사용해서, 번째 몬스터 뒤에 레벨이 각 인 몬스터를 연속 소환하면 농장에 있는 몬스터의 레벨 구성은 왼쪽부터 가 된다. 여기서 연속 공격을 사용하여 번째부터 번째까지의 몬스터를 제거하면 농장에 있는 몬스터의 레벨 구성은 왼쪽부터 가 된다.
현재 몬스터 농장에는 몬스터가 마리가 있으며, 왼쪽에서 번째 몬스터의 레벨은 이다. 에띠는 몬스터 농장의 구성을 몬스터가 마리가 되고, 왼쪽에서 번째 몬스터의 레벨이 가 되도록 하고 싶다.
에띠가 연속 공격과 연속 소환을 원하는 순서로 원하는 만큼 사용하여 몬스터의 구성을 원하는 대로 만들 수 있는지와, 바꿀 수 있다면 스킬을 사용하는 방법을 구하여라.
첫 줄에 몬스터의 레벨 제한을 나타내는 정수 와 스킬의 제한을 나타내는 정수 이 공백으로 구분되어 주어진다.
두 번째 줄에 현재 몬스터 농장을 구성하는 몬스터 수를 나타내는 정수 가 주어진다.
세 번째 줄에 현재 몬스터 농장 구성의 몬스터의 레벨을 나타내는 정수 개가 공백으로 구분되어 주어진다. 왼쪽에서부터 차례로 를 의미한다.
네 번째 줄에 만들고 싶은 몬스터 농장 구성의 몬스터 수를 나타내는 정수 가 주어진다.
다섯 번째 줄에 만들고 싶은 몬스터 농장 구성의 몬스터의 레벨을 나타내는 정수 개가 공백으로 구분되어 주어진다. 왼쪽에서부터 차례로 를 의미한다.
첫 줄에 몬스터 농장의 몬스터 구성을 원하는 대로 만들 수 있다면 YES
를, 아니면 NO
를 출력하라.
몬스터 농장의 구성을 원하는 대로 바꿀 수 있다면, 두 번째 줄에 사용해야 하는 스킬의 개수 를 출력한다.
그다음 줄부터 사용하는 스킬 개를 다음과 같은 방법으로 차례로 출력하여라.
-
, 스킬을 사용할 위치 , 없앨 몬스터 수 을 공백으로 구분하여 출력한다.+
, 스킬을 사용할 위치 , 추가할 몬스터 수 을 공백으로 구분하여 출력한다.만약 답이 여러 가지라면, 그중 아무거나 하나 출력한다. 또한, 연산의 횟수를 최소화할 필요가 없음을 유의하여라.
몬스터 농장의 구성을 에띠가 원하는 대로 만들 수 있다면, 스킬을 번 이내로 사용하는 답이 존재함을 증명할 수 있다.
10 3 6 3 1 4 1 5 9 7 3 2 7 8 9 1 4
YES 2 + 1 4 2 7 8 9 - 7 3
입력 케이스들은 다음과 같은 종류로 구별되며, 한 종류의 케이스를 다 맞추어야 그 종류에 배정된 점수를 받을 수 있다.
종류 1: 15점
종류 2: 13점
종류 3: 9점
종류 4: 26점
종류 5: 37점
추가적인 제한 조건이 없음.