QOJ.ac

QOJ

Límite de tiempo: 1.0 s Límite de memoria: 256 MB Puntuación total: 100 Hackeable ✓

#17673. 명사수 팀

Estadísticas

Wabbit은 체육 수업 요건을 충족하기 위해 권총 수업을 신청했으며, 엘리트 사수가 되고 싶어 합니다. MIT 사격장에는 $1$부터 $N$까지 번호가 매겨진 $N$ ($1 \le N \le 3 \cdot 10^5$)개의 사격 레인이 있습니다. 레인 $i$에는 현재 $A_i$ ($0 \le A_i \le 5 \cdot 10^5$)개의 표적이 일렬로 세워져 있습니다. 전체 사격장에 최소 하나의 표적이 있음이 보장됩니다.

Wabbit의 연습용 총은 탄환이 무한하며, 모든 표적을 맞춰야 합니다. 각 사격 전에 Wabbit은 레인을 하나 선택하여 해당 레인으로 총을 1발 발사합니다. 표적은 한 번 맞으면 쓰러지며 다시 나타나지 않습니다.

하지만 Wabbit의 사격 실력은 형편없어서, 모든 홀수 번째 사격은 해당 레인의 첫 번째 표적을 맞히고, 모든 짝수 번째 사격은 해당 레인의 첫 번째 표적을 빗나가고 두 번째 표적을 맞힙니다(존재하는 경우). 첫 번째 사격은 1번째 사격입니다.

Wabbit은 표적을 맞히지 못하는 사격을 할 수 없습니다. 표적 뒤의 벽이 손상되기 때문입니다. 모든 표적을 쓰러뜨릴 수 있는 사격 순서를 찾거나, 그러한 순서가 존재하지 않는지 확인하십시오.

입력

각 테스트 케이스는 여러 개의 테스트를 포함합니다. 첫 번째 줄에는 테스트 케이스의 수 $t$ ($1 \le t \le 1000$)가 주어집니다. 그 뒤로 각 테스트 케이스에 대한 설명이 이어집니다.

각 테스트 케이스는 2줄로 구성됩니다. 첫 번째 줄에는 레인의 수 $N$이 주어집니다. 두 번째 줄에는 각 레인에 있는 표적의 수를 나타내는 $N$개의 정수 $A_1, A_2, \dots, A_n$이 공백으로 구분되어 주어집니다.

모든 테스트 케이스에 걸쳐 $A_i$의 합은 $5 \cdot 10^5$을 넘지 않음이 보장됩니다. 모든 테스트 케이스에 걸쳐 $N$의 합은 $3 \cdot 10^5$을 넘지 않음이 보장됩니다.

출력

각 테스트 케이스에 대해, 모든 표적을 맞힐 수 있는 사격 순서가 존재하면 "YES"를, 그렇지 않으면 "NO"를 출력하십시오. 대소문자는 구분하지 않습니다. 예를 들어, "yEs", "yes", "Yes", "YES"는 모두 긍정적인 응답으로 인식됩니다.

테스트 케이스 내 $A_i$의 합을 $A$라고 합시다(참고: $A$는 테스트 케이스마다 다를 수 있습니다). 만약 그러한 순서가 존재한다면, 다음 줄에 $A$개의 정수 $l_1, l_2, \dots, l_A$를 공백으로 구분하여 출력하십시오. 여기서 $l_i$는 $i$번째 사격에서 Wabbit이 발사해야 할 레인 번호입니다. 여러 해가 존재한다면 그중 아무거나 출력해도 됩니다.

서브태스크

YES/NO 응답이 정확하더라도 $l_i$ 값이 틀리면 각 서브태스크 점수의 50%를 받게 됩니다. 각 테스트 케이스에 대해 부분 점수를 받으려면 정확히 $A$개의 $l_i$ 값을 출력해야 합니다.

  • (30점): 모든 테스트 케이스에 걸쳐 $N$의 합은 2000을 넘지 않으며, 모든 테스트 케이스에 걸쳐 $A_i$의 합은 2000을 넘지 않습니다.
  • (70점): 추가 제약 조건 없음.

예제

입력 1

3
1
3
1
2
5
1 1 1 1 1

출력 1

YES
1 1 1
NO
NO

참고

첫 번째 테스트 케이스에는 3개의 표적이 있는 레인이 1개 있으며, Wabbit은 레인 1에 3번 사격하여 모든 표적을 쓰러뜨릴 수 있습니다. 표적이 앞쪽부터 $A, B, C$라고 하면, 첫 번째 사격은 $A$를 쓰러뜨리고, 두 번째 사격은 $B$를 빗나가고 $C$를 쓰러뜨리며, 마지막 사격은 $B$를 쓰러뜨립니다.

두 번째 테스트 케이스에는 2개의 표적이 있는 레인이 1개 있습니다. 레인 1에 대한 첫 번째 사격은 앞쪽 표적을 맞히지만, 두 번째 사격은 빗나가기 때문에 남은 표적을 쓰러뜨릴 수 없습니다. 따라서 이 테스트 케이스에 대한 사격 순서는 존재하지 않습니다.

세 번째 테스트 케이스에는 각각 1개의 표적이 있는 레인이 5개 있습니다. 어떤 레인이든 첫 번째 사격은 해당 레인의 표적을 맞히지만, 두 번째 사격은 다른 표적을 맞힐 수 없습니다. 따라서 이 테스트 케이스에 대한 사격 순서는 존재하지 않습니다.

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.