시간 제한메모리 제한제출정답맞힌 사람정답 비율
3 초 1024 MB (추가 메모리 없음)130338022826.177%

문제

2020년, 선린인터넷고등학교는 서울시 교육청에 의해 인공지능 분야 고등학교로 선정되었다.

정휘는 후배들이 지난 2년 동안 인공지능 교육을 잘 받았는지 확인하기 위해 신경망과 관련된 문제를 출제하기로 했다.

인공 신경망은 여러 개의 인공 신경으로 구성된 망 형태의 구조이다. $i$번째 인공 신경은 가중치 $W_{i,1}, W_{i,2}, \cdots, W_{i,C_i}$와 편향값 $B_i$를 갖고 있다. $C_i$개의 입력 데이터 $X_{i,1}, X_{i,2}, \cdots, X_{i,C_i}$를 받으면 $Y_i = X_{i,1}W_{i,1} + X_{i,2}W_{i,2} + \cdots + X_{i,C_i}W_{i,C_i} + B_i$를 계산해서 출력한다. 즉, $Y_i = \displaystyle \sum_{k=1}^{C_i} X_{i,k}W_{i,k} + B_i$를 출력한다. 아래 그림은 인공 신경의 구성을 그림으로 나타낸 것이다.

예를 들어 가중치가 $\lbrace 3, 1 \rbrace$, 편향값이 $2$인 인공 신경을 생각해보자. 입력이 $\lbrace 1, 2 \rbrace$이면 출력값은 $1\times3+2\times1+2=7$이다.

정휘가 준비한 인공 신경망은 입력층, 은닉층, 출력층으로 구성되어 있다.

입력층은 $N$개의 입력 $A_1, A_2, \cdots, A_N$으로 구성되어 있고, 은닉층은 $M$개의 인공 신경으로 구성되어 있다. 은닉층의 $i$번째 인공 신경은 $A_{P_{i,1}}, A_{P_{i,2}} \cdots, A_{P_{i,C_i}}$를 입력으로 받아 출력값을 계산한다. 출력층은 1개의 인공 신경으로 구성되어 있고, 은닉층에 있는 $1, 2, \cdots, M$번째 인공 신경들의 출력값을 순서대로 입력으로 받아 출력값을 계산한다. 편의상 출력층의 인공 신경을 $M+1$번째 인공 신경이라고 하자.

예를 들어 인공 신경들의 가중치가 $W = \lbrace \lbrace 1,2 \rbrace, \lbrace 3,4\rbrace, \lbrace 5,6 \rbrace, \lbrace 10,20,30\rbrace\rbrace$, 편향값이 $B = \lbrace 7, 8, 9, 100\rbrace$인 인공 신경망에서 은닉층의 인공 신경들이 입력 층의 $P = \lbrace\lbrace 1, 2\rbrace, \lbrace2, 3\rbrace, \lbrace4, 5\rbrace\rbrace$ 번째 값을 입력으로 받는다고 하자. 입력으로 $A = \lbrace 2,7,6,8,4 \rbrace$이 주어지면 아래 그림처럼 나타낼 수 있다.

인공 신경망의 구성과 입력 데이터가 주어지면 신경망의 출력값을 구하는 프로그램을 작성해 보자.

입력

첫째 줄에 입력층의 입력 크기 $N$, 은닉층의 인공 신경 개수 $M$, 출력값을 계산해야 하는 횟수 $Q$가 공백으로 구분되어 주어진다. $(1 \leq N,M,Q \leq 2\,000)$

둘째 줄부터 $M$번째 줄에 걸쳐 은닉층의 인공 신경의 정보가 한 줄에 하나씩 순서대로 주어진다. 인공 신경의 입력 개수 $C_i$, 입력 데이터 $P_{i,1}, P_{i,2}, \cdots, P_{i,C_i}$, 가중치 $W_{i,1}, W_{i,2}, \cdots, W_{i,C_i}$, 편향값 $B_i$가 차례로 공백으로 구분되어 주어진다. ($1 \leq C_i \leq N$, $1 \leq P_{i,j} \leq N$, 각 $i$마다 $P_{i,j}$는 서로 다름)

이어서 출력층의 인공 신경 정보가 한 줄에 걸쳐 주어진다. 가중치 $W_{M+1,1}, W_{M+1,2}, \cdots, W_{M+1,M}$, 편향값 $B_{M+1}$이 차례로 공백으로 구분되어 주어진다. ($1 \leq W_{i,j},B_i \leq 100$)

다음 $Q$개의 줄에 걸쳐 여러분이 출력값을 구해야 하는 입력 데이터가 한 줄에 하나씩 주어진다. 각 줄은 $N$개의 정수 $A_1, A_2, \cdots, A_N$으로 구성되어 있다. ($1 \leq A_i \leq 100$)

입력으로 주어지는 수는 모두 정수이다.

출력

$Q$개의 줄에 걸쳐 정답을 출력한다.

예제 입력 1

5 3 2
2 1 2 1 2 7
2 2 3 3 4 8
2 4 5 5 6 9
10 20 30 100
2 7 6 8 4
1 2 3 4 5

예제 출력 1

3580
2510

노트

  • Python 사용자는 PyPy로 제출하는 것을 권장한다.
  • 정답이 32비트 정수 범위를 넘을 수 있다.

출처

School > 선린인터넷고등학교 > 천하제일 코딩대회 > 제6회 천하제일 코딩대회 본선 G번