포럼
문제 USACO0511

로봇 명령

설명

베시는 최근 선물로 받은 로봇을 조종하는 법을 배우고 있다.

로봇은 좌표평면의 점 \((0, 0)\)에서 출발하며, 베시는 로봇이 점 \((x_g, y_g)\)에서 끝나기를 원한다. 베시는 처음에 로봇에게 내릴 \(N\) (\(1\le N\le 40\))개의 명령 목록을 가지고 있으며, 그중 \(i\)번째 명령은 로봇을 오른쪽으로 \(x_i\)칸, 위로 \(y_i\)칸 이동시킨다(\(x_i\)\(y_i\)가 음수이면 각각 왼쪽, 아래로 이동한다).

\(1\)부터 \(N\)까지의 각 \(K\)에 대해, 원래의 \(N\)개 명령 중 \(K\)개를 선택하여 그 \(K\)개의 명령을 실행한 후 로봇이 점 \((x_g, y_g)\)에서 끝나도록 하는 방법의 수를 세는 것을 도와주자.

*참고: 이 문제의 시간 제한과 메모리 제한은 4초와 512MB로, 기본값의 두 배이다.*

출제자: Alex Liang

제약

배점

  • 테스트 케이스 2-4는 \(N\le 20\)을 만족한다.
  • 테스트 케이스 5-16에는 추가 제약이 없다.

출제자: Alex Liang

입력 형식

첫째 줄에 \(N\)이 주어진다. 다음 줄에 \(x_g\)\(y_g\)가 주어지며, 각각 \(-10^9 \ldots 10^9\) 범위에 있다. 마지막 \(N\)개의 줄에 명령들이 주어진다. 각 줄에는 두 정수 \(x_i\)\(y_i\)가 주어지며, 이 역시 \(-10^9 \ldots 10^9\) 범위에 있다.

\((x_g,y_g)\neq (0,0)\)이고 모든 \(i\)에 대해 \((x_i,y_i)\neq (0,0)\)임이 보장된다.

출력 형식

\(N\)개의 줄에 걸쳐, \(1\)부터 \(N\)까지의 각 \(K\)에 대해 베시가 원래의 \(N\)개 명령 중 \(K\)개를 선택하는 방법의 수를 출력한다.

예제 1
입력
7
5 10
-2 0
3 0
4 0
5 0
0 10
0 -10
0 10
출력
0
2
0
3
0
1
0
설명

In this example, there are six ways Bessie can select the instructions:

(-2,0) (3,0) (4,0) (0,10) (0,-10) (0,10) (1 2 3 5 6 7)
(-2,0) (3,0) (4,0) (0,10) (1 2 3 5)
(-2,0) (3,0) (4,0) (0,10) (1 2 3 7)
(5,0) (0,10) (0,-10) (0,10) (4 5 6 7)
(5,0) (0,10) (4 5)
(5,0) (0,10) (4 7)

For the first way, the robot's path looks as follows:

(0,0) -> (-2,0) -> (1,0) -> (5,0) -> (5,10) -> (5,0) -> (5,10)
문제 정보

riseoj 작성

출처 올림피아드 > USACO > 2021-2022 > February > Silver

태그

평가 및 의견

Robot Instructions

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

Log in to rate problems.

개별 의견

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

풀이 제출

Robot Instructions

게스트로 둘러보고 있습니다. 로그인하면 풀이를 제출하고 진행 상황을 확인할 수 있습니다. 로그인하고 제출하기
공개
C++20 Tab 들여쓰기 · Ctrl+/ 주석 토글 · Enter 자동 들여쓰기
1 1 1 0 공백: 4 · UTF-8