포럼
문제 USACO0357

소의 시

설명

농부 존은 모르지만, 베시는 상당한 예술 애호가이다! 최근 베시는 위대한 시인들을 여럿 공부하기 시작했고, 이제 직접 시를 써 보려 한다.

베시는 \(N\)개의 단어 (\(1 \leq N \leq 5000\))를 알고 있으며, 이들을 배열하여 시를 짓고 싶어한다. 베시는 각 단어의 길이를 음절 수로 파악해 두었고, 단어들을 "운율 클래스"로 분류해 두었다. 각 단어는 같은 운율 클래스에 속한 다른 단어들과만 운이 맞는다.

베시의 시는 각각 \(M\)개의 행 (\(1 \leq M \leq 10^5\))으로 이루어지며, 각 행은 \(K\)개의 음절 (\(1 \leq K \leq 5000\))로 구성되어야 한다. 게다가 베시의 시는 특정한 운율 구조를 따라야 한다.

베시는 주어진 제약을 만족하는 서로 다른 시를 몇 편 쓸 수 있는지 알고 싶어한다.

출제자: Jay Leeds

제약

출제자: Jay Leeds

입력 형식

입력의 첫째 줄에 \(N\), \(M\), \(K\)가 주어진다.

다음 \(N\)개의 줄에는 각각 두 수 \(s_i\) (\(1 \leq s_i \leq K\))와 \(c_i\) (\(1 \leq c_i \leq N\))가 주어진다. 이는 베시가 음절 길이 \(s_i\)에 운율 클래스 \(c_i\)인 단어를 알고 있음을 나타낸다.

마지막 \(M\)개의 줄은 베시가 원하는 운율 구조를 나타내며, 각각 대문자 \(e_i\) 하나가 주어진다. \(e_i\) 값이 같은 행들은 모두 같은 운율 클래스의 단어로 끝나야 한다. \(e_i\) 값이 다른 행들이 반드시 서로 다른 운율 클래스의 단어로 끝나야 하는 것은 아니다.

출력 형식

이 제약들을 만족하며 베시가 쓸 수 있는 시의 개수를 출력한다. 이 수는 매우 클 수 있으므로 1,000,000,007로 나눈 나머지를 계산하여 출력한다.

Standard input / output
This problem is judged over standard input/output. The original contest used named files — if you prefer the classic interface, tick “File I/O” on the submit form and read/write these files instead:
입력을 읽을 파일 poetry.in · 출력을 쓸 파일 poetry.out
예제 1
입력
3 3 10
3 1
4 1
3 2
A
B
A
출력
960
설명

In this example, Bessie knows three words. The first two words rhyme, and have lengths of three
syllables and four syllables, and the last word is three syllables long and
doesn't rhyme with the others. She wants to write a three-line poem such that each line contains ten
syllables and the first and last lines rhyme. There are 960 such poems. One example of a valid poem is the following (where 1, 2, and 3 represent the
first, second, and third words): 121 123 321

문제 정보

riseoj 작성

출처 올림피아드 > USACO > 2018-2019 > January > Gold

태그

평가 및 의견

Cow Poetry

개요
출제자 난이도 Unrated 레이팅 미적용 의견 0 / 1 공개 집계 (커뮤니티 난이도, 주요 주제, 품질)는 의견이 충분히 모이면 공개됩니다.

Log in to rate problems.

개별 의견

아직 의견이 없습니다. 자격이 된다면 위 양식에서 가장 먼저 평가해 보세요.

풀이 제출

Cow Poetry

게스트로 둘러보고 있습니다. 로그인하면 풀이를 제출하고 진행 상황을 확인할 수 있습니다. 로그인하고 제출하기
공개
파일 입출력 (poetry.in / poetry.out — classic USACO interface; off = stdin/stdout)
C++20 Tab 들여쓰기 · Ctrl+/ 주석 토글 · Enter 자동 들여쓰기
1 1 1 0 공백: 4 · UTF-8