QOJ.ac

QOJ

Time Limit: 2 s Memory Limit: 512 MB Total points: 100 Interactive

#993. 시간당 100개의 상자...

Statistics

당신은 시간당 100개의 상자를 분류하는 일을 합니다. 각 상자는 빨간색, 파란색, 녹색 중 하나의 색상을 가집니다. 상자는 슬롯을 통해 들어오므로, 앞으로 어떤 상자가 올지 미리 알 수 없습니다. 당신은 가능한 한 많은 상자를 집으로 가져가고 싶지만, 상자를 보관할 수 있는 통은 두 개뿐입니다. 안타깝게도 통의 용량에는 제한이 없지만, 서로 다른 색상의 상자를 같은 통에 담을 수는 없습니다.

다행히 동료가 상자 색상의 분포를 알려주었지만, 구체적인 색상은 알려주지 않았습니다. 당신이 아는 것은 합이 100이 되는 세 정수뿐입니다. 상자를 받으면 세 가지 행동을 할 수 있습니다. 첫째, 두 통 중 하나를 비워 그 안에 있는 모든 상자를 버릴 수 있습니다. 그 후, 비어 있거나 해당 색상의 상자만 들어 있는 통에 상자를 넣을 수 있습니다. 또는, 현재 상자를 그냥 버릴 수도 있습니다.

이 상자들은 가치가 있다고 생각되므로, 가능한 한 많이 보관하고 싶습니다. 당신은 총 $T = 100$ 시간 동안 상자를 수집하게 됩니다. 매 시간마다 두 개의 빈 통으로 시작합니다. 매 시간 끝에 100개의 상자 중 최소 43개를 수집할 수 있습니까?

각 테스트에서 상자의 순서는 무작위가 아니며, 대회가 시작되기 전에 미리 고정되어 있습니다.

인터랙션

먼저 당신이 일할 시간의 수인 정수 $T$가 주어집니다. 이 문제의 모든 테스트에서 $T = 100$입니다.

당신이 일하는 매 시간마다, 어떤 색상의 상자가 $A$개, 다른 색상의 상자가 $B$개, 나머지 색상의 상자가 $C$개 있음을 나타내는 세 정수 $A, B, C$가 주어집니다. $0 \le A, B, C \le 100$이고 $A + B + C = 100$임이 보장됩니다.

그 후, 한 시간의 작업이 시작됩니다. 현재 상자의 색상을 나타내는 "R", "G", "B" 중 하나의 문자가 주어집니다. 그런 다음 "EMPTY 1" 또는 "EMPTY 2"를 사용하여 통을 비울 수 있습니다. 통은 원하는 만큼 여러 번 비울 수 있습니다. 그 후, 상자를 넣을 통 번호 $x$를 지정하여 "PLACE $x$"를 출력하거나, "DISCARD"를 출력하여 현재 상자를 버릴 수 있습니다. 어떤 경우든, 각 줄을 출력한 후에는 줄 바꿈 문자를 출력하고 출력을 비워야(flush) 합니다.

잘못된 명령을 출력하거나 서로 다른 색상의 상자 두 개를 한 통에 넣으면, 정수 -1이 주어집니다. 이 시점에서 프로그램은 종료되어야 하며, 이후 "Wrong Answer" 결과를 받게 됩니다.

예제

입력 1

1
5 2 3
G
G
B
B
G
G
R
G
B
R

출력 1

PLACE 2
PLACE 1
EMPTY 1
PLACE 1
EMPTY 2
EMPTY 1
PLACE 2
DISCARD
DISCARD
PLACE 1
DISCARD
PLACE 2
PLACE 1

참고

예제 인터랙션은 유효한 교환을 보여주지만, $T = 1$이고 $A + B + C = 10$이므로 문제의 제약 조건을 따르지 않습니다. 이는 실제 테스트 케이스에는 나타나지 않습니다.

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
#516Editorial Open集训队作业 解题报告 by 全柏锋Qingyu2026-01-02 21:36:17 Download

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.