페이지가 로드되지 않나요? 여기를 눌러보면 고쳐질 수도 있어요.
Placeholder

#5632

Moo Language 1s 32MB

문제

[번역]

소의 언어는 오직 명사(nouns​), 타동사(transitive verbs​), 자동사(​intransitive verbs​), 그리고 접속사(conjunctions​)로만 이루어지고, 구두점은 '.'과 ','만 있음.

 

문장은 다음 형식 중 하나를 따라야 한다:

1번 유형: 명사 + 자동사.

2번 유형: 명사 + 타동사 + 명사(들). 구체적으로, 적어도 하나의 명사는 타동사 뒤에 와야 하고, 첫 명사 외에 모든 명사의 앞에는 쉼표가 있어야 한다.​ 

 

두 문장 사이에 접속사가 들어가면 복합문장으로 연결될 수 있으며, 복합 문장은 다른 문장 또는 다른 복합 문장과 더 이상 결합할 수 없다. 

모든 문장(또는 복합 문장)은 마침표로 끝나야 한다.

 

N개의 단어, C개의 쉼표, 그리고 P개의 마침표(1≤ P, C≤ N≤ 10^3)를 사용 할 수 있을 때, 가능한 최대 단어 수가 포함된 문장들을 출력하시오.


입력

첫 번째 줄에는 T (1≤T≤100)가 주어지며, 이는 인스턴스의 수를 나타냅니다. 각 인스턴스는 다음과 같이 지정됩니다:

첫 번째 줄은 세 개의 정수 N, C, P로 구성됩니다.

그 다음 N개의 줄은 두 개의 문자열로 구성됩니다. 첫 번째 문자열은 FJ가 사용할 수 있는 단어로, 최소 1자에서 최대 10자까지의 소문자로 이루어져 있으며, 두 번째 문자열은 단어의 종류를 나타냅니다. 종류는 다음 중 하나일 수 있습니다: 명사(noun), 타동사(transitive-verb), 자동사(intransitive-verb), 또는 접속사(conjunction). 동일한 단어가 FJ의 단어 목록에 여러 번 나올 수 있지만, 나타날 때마다 항상 동일한 종류를 가집니다.


출력

첫 번째 줄에 가능한 최대 단어 수를 출력하십시오.

두 번째 줄에는 가능한 최대 단어 수로 구성된 문장 시퀀스를 출력하십시오. 가능한 모든 유효한 시퀀스가 허용됩니다.

채점자는 공백에 민감하므로, 각 줄의 끝에 불필요한 공백을 출력하지 않도록 주의하십시오.


예제

3

1 1 1
bessie noun
10 5 4
bessie noun
taught transitive-verb
flew intransitive-verb
elsie noun
farmer noun
john noun
and conjunction
and conjunction
nhoj noun
mooed intransitive-verb
24 5 4
but conjunction
bessie noun
taught transitive-verb
flew intransitive-verb
elsie noun
farmer noun
john noun
and conjunction
and conjunction
nhoj noun
mooed intransitive-verb
bob noun
impressed transitive-verb
cow noun
impressed transitive-verb
leaped intransitive-verb
elsie noun
bella noun
buttercup noun
pushed transitive-verb
mooed intransitive-verb
envy noun
john noun
nhoj noun
0


9
nhoj mooed. farmer taught elsie, bessie and john flew.
23
nhoj mooed. nhoj impressed john, farmer, elsie, bessie and cow impressed bob. bella pushed elsie and buttercup flew. envy mooed but john leaped.

첫 번째 테스트 케이스에서는 유효한 시퀀스가 공백 시퀀스만 가능합니다. 그 다음 두 개의 테스트 케이스에서는, 단어 목록에서 하나를 제외한 모든 단어를 사용하여 문장 시퀀스를 만들 수 있습니다.


출처

USACO 2023 US Open Bronze

로그인해야 코드를 작성할 수 있어요.