인공 신경망
시간 제한3초메모리 제한1024 MB
각 은닉 뉴런이 선택한 입력값들의 가중합을 계산하는 2층 신경망에서 Q개의 입력에 대한 출력값을 구한다.
문제
2020년, 선린인터넷고등학교는 서울시 교육청에 의해 인공지능 분야 고등학교로 선정되었다.
정휘는 후배들이 지난 2년 동안 인공지능 교육을 잘 받았는지 확인하기 위해 신경망과 관련된 문제를 출제하기로 했다.
인공 신경망은 여러 개의 인공 신경으로 구성된 망 형태의 구조이다. 번째 인공 신경은 가중치 와 편향값 를 갖고 있다. 개의 입력 데이터 를 받으면 를 계산해서 출력한다. 즉, 를 출력한다. 아래 그림은 인공 신경의 구성을 그림으로 나타낸 것이다.

예를 들어 가중치가 , 편향값이 인 인공 신경을 생각해보자. 입력이 이면 출력값은 이다.
정휘가 준비한 인공 신경망은 입력층, 은닉층, 출력층으로 구성되어 있다.
입력층은 개의 입력 으로 구성되어 있고, 은닉층은 개의 인공 신경으로 구성되어 있다. 은닉층의 번째 인공 신경은 를 입력으로 받아 출력값을 계산한다. 출력층은 1개의 인공 신경으로 구성되어 있고, 은닉층에 있는 번째 인공 신경들의 출력값을 순서대로 입력으로 받아 출력값을 계산한다. 편의상 출력층의 인공 신경을 번째 인공 신경이라고 하자.
예를 들어 인공 신경들의 가중치가 , 편향값이 인 인공 신경망에서 은닉층의 인공 신경들이 입력 층의 번째 값을 입력으로 받는다고 하자. 입력으로 이 주어지면 아래 그림처럼 나타낼 수 있다.

인공 신경망의 구성과 입력 데이터가 주어지면 신경망의 출력값을 구하는 프로그램을 작성해 보자.
입력
첫째 줄에 입력층의 입력 크기 , 은닉층의 인공 신경 개수 , 출력값을 계산해야 하는 횟수 가 공백으로 구분되어 주어진다.
둘째 줄부터 번째 줄에 걸쳐 은닉층의 인공 신경의 정보가 한 줄에 하나씩 순서대로 주어진다. 인공 신경의 입력 개수 , 입력 데이터 , 가중치 , 편향값 가 차례로 공백으로 구분되어 주어진다. (, , 각 마다 는 서로 다름)
이어서 출력층의 인공 신경 정보가 한 줄에 걸쳐 주어진다. 가중치 , 편향값 이 차례로 공백으로 구분되어 주어진다. ()
다음 개의 줄에 걸쳐 여러분이 출력값을 구해야 하는 입력 데이터가 한 줄에 하나씩 주어진다. 각 줄은 개의 정수 으로 구성되어 있다. ()
입력으로 주어지는 수는 모두 정수이다.
출력
개의 줄에 걸쳐 정답을 출력한다.
힌트
- Python 사용자는 PyPy로 제출하는 것을 권장한다.
- 정답이 32비트 정수 범위를 넘을 수 있다.