| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1 초 (추가 시간 없음) | 1024 MB | 22 | 5 | 5 | 41.667% |
서울대학교 워터밤에 오신 여러분, 환영합니다!
이번 축제에서는 $N$명의 사람들이 함께 즐길 수 있는 재밌는 게임을 하나 계획하고 있습니다. ”빙글빙글 물대포” 게임은 원 모양의 행사장의 테두리 위에 동일한 간격으로 배치된 $N$개의 물대포를 사용해서 진행됩니다. 물대포에는 1ドル$번부터 $N$번까지의 번호가 붙어 있으며, 시계 방향으로 1ドル$번 물대포, 2ドル$번 물대포, $\cdots,ドル $N$번 물대포가 놓여 있습니다. 모든 물대포는 바닥에 고정되어 움직이지 않습니다.
각각의 물대포는 2ドルN$초에 한 바퀴씩 일정한 속도로 시계 방향으로 멈추지 않고 회전하며, 초기 시점에 각 물대포는 시계 방향으로 다음에 위치한 물대포를 향해 있습니다. 즉, 초기 시점에 1ドル$번 물대포는 2ドル$번 물대포를 향해 있고, 2ドル$번 물대포는 3ドル$번 물대포를 향해 있으며, $\cdots,ドル $N$번 물대포는 1ドル$번 물대포를 향해 있습니다.
또한, $i$번째 물대포는 초기 시점을 포함해, $T_i$초에 한 번씩 물대포가 향한 방향으로 물줄기를 발사합니다. 물줄기는 반직선 경로를 따라 멈추지 않고 한없이 뻗어나갑니다.
$i(1\le i\le N)$번 참가자는 $i$번 물대포 위치에서 게임을 진행합니다. 만약 물대포가 발사하는 물줄기가 지나는 위치에 사람이 서 있었다면, 발사된 즉시 그 물줄기를 맞게 됩니다. 단, 자신이 선택한 물대포에서 발사되는 물줄기는 맞지 않습니다. $i$번째 물대포에 위치한 사람에게는 초기 시점에 $A_i$ 만큼의 체력이 주어지고, 물줄기를 한 번 맞을 때마다 체력이 정확히 1ドル$씩 감소하여 체력이 0ドル$이 된 사람은 0ドル.5$초 후에 게임에서 탈락하게 됩니다. 게임에서 탈락한 사람의 대포는 그 사람이 탈락한 시점부터 더 이상 물줄기를 발사하지 않게 됩니다.
게임에서 끝까지 남게 되는 사람들에게는 어마어마한 상품이 준비되어 있다고 하니, 끝까지 남기 위해서 어떤 위치를 선점해야 하는 지가 중요하겠죠? 아무리 긴 시간동안 게임이 지속된다고 하더라도, 반드시 끝까지 남게 되는 위치들을 모두 구해주세요!
첫 번째 줄에 물대포의 수 $N$이 주어집니다. (2ドル\le N\le 50$)
두 번째 줄에 $i$번째 물대포에 위치한 사람의 초기 체력 $A_i$가 띄어쓰기로 구분되어 주어집니다. (1ドル\le A_i\le 1,円 000,円 000,円 000,ドル 1ドル\le i\le N$)
세 번째 줄에 $i$번째 물대포의 발사 주기 $T_i$가 띄어쓰기로 구분되어 주어집니다. (1ドル\le T_i\le 1,円 000,ドル 1ドル\le i\le N$)
모든 입력은 정수입니다.
첫 번째 줄에는, 반드시 끝까지 남게 되는 위치의 개수를 출력합니다.
두 번째 줄에는, 반드시 끝까지 남게 되는 위치에 해당하는 물대포의 번호를 띄어쓰기로 구분해 오름차순으로 모두 출력합니다.
3 1 1 2 1 1 1
1 3
3 2 100000 1 1 2 3
1 1
3 1 1 1 1 1 1
0
4 1 10 1 10 2 4 2 4
2 2 4
University > 서울대학교 > 서울대학교 프로그래밍 경시대회 > 2023 서울대학교 프로그래밍 경시대회 > Division 2 G번