페이지를 불러오는 중…
해결한 사람
1
명
정답률
100.00
%
시간 제한
40000
ms
메모리 제한
512
MB
모든 백신을 전 세계 인구에게 제공하는 것은 여러 측면에서 복잡한 문제이다. Ñambi는 배송을 최적화하는 일을 이끌고 있다. 접근 장벽을 가능한 한 낮추기 위해, 자동화된 로봇이 환자의 집으로 직접 백신을 배송하고 접종하도록 하려고 한다.
현재 설계에서 Ñambi가 만드는 로봇은 서쪽에서 동쪽으로 뻗은 하나의 거리에서 작동한다. 따라서 로봇은 '미터 이동'이라는 하나의 명령을 받는다. 이 양수이면 로봇은 동쪽으로 미터 이동한다. 이 음수이면 로봇은 서쪽으로 미터 이동한다.
하루가 시작될 때 로봇에는 그날 실시해야 하는 모든 예방 접종에 관한 정보가 입력된다. 각 정보는 수거할 백신의 현재 위치와 백신을 전달받아야 하는 환자의 위치로 구성된다. 각 백신은 한 환자를 위해 맞춤 제작된다. 물론 백신의 배송 위치는 절대로 그 백신의 수거 위치와 같지 않다. 로봇은 백신을 환자에게 배송하기 전에 수거해야 한다.
로봇은 백신의 수거 위치를 처음 통과할 때 백신을 자동으로 수거하여 화물칸에 싣도록 프로그래밍되어 있다. 또한 백신을 이미 수거했다면 수령인의 위치를 통과하는 즉시 백신을 배송하도록 프로그래밍되어 있다. Ñambi는 각 이동 명령 후 몇 건의 예방 접종이 이루어지는지 추적하려고 한다. 백신이 배송되면 예방 접종이 이루어진다. 백신은 이전 명령 중 어느 하나에서 수거되었을 수도 있고, 같은 명령 중 배송 전에 수거되었을 수도 있음에 유의하라.
다음 그림은 가능한 한 가지 상황(아래의 예제 케이스 #1)을 보여 준다. 웃는 얼굴은 로봇의 초기 위치를 나타내고, 긴 검은 선은 거리이다. 선 위의 표시는 수거 위치이고 선 아래의 표시는 배송 위치이다. 마지막으로 아래의 화살표는 로봇이 수행하는 이동을 위에서 아래의 순서로 나타내며, 각 이동 중 완료되는 배송 건수가 표시되어 있다.

각 이동 중에는 다음과 같은 일이 순서대로 일어난다.
이동 1. 로봇은 백신 와 를 수거한 다음 백신 를 배송하고, 이동이 끝나는 순간 백신 를 수거한다. 로봇이 백신 의 배송 위치를 통과하지만, 이는 백신 를 수거하기 전에 일어나므로 배송할 수 없음에 유의하라.
이동 2. 로봇은 백신 와 의 배송 위치를 통과한다. 하지만 백신 는 이미 배송되었고 백신 는 수거되지 않았으므로, 완료되는 예방 접종은 없다.
이동 3. 로봇은 백신 를 배송한다.
이동 4. 로봇은 백신 를 수거하고, 백신 를 배송하고, 백신 를 수거한다.
백신 와 는 수거되었지만 배송되지 않았음에 유의하라. 백신 의 배송 위치에는 한 번도 도달하지 않았고, 백신 의 배송 위치에는 그 백신을 수거한 뒤에 도달하지 않았기 때문이다.
실시해야 할 예방 접종의 목록과 로봇이 순서대로 실행할 이동 명령의 목록이 주어질 때, 각 명령 후 완료된 예방 접종 수를 계산하라.
메모리 제한: 2 GB. . 모든 에 대해 . 모든 에 대해 . 모든 에 대해 . 모든 에 대해 . 모든 에 대해 .
시간 제한: 20초. . .
시간 제한: 40초. . .
입력의 첫 번째 줄에는 테스트 케이스의 수 가 주어진다. 이어서 개의 테스트 케이스가 주어진다. 각 테스트 케이스는 개의 줄로 구성된다. 테스트 케이스의 첫 번째 줄에는 예방 접종 수와 이동 명령 수를 나타내는 개의 정수 와 이 주어진다.
테스트 케이스의 두 번째 줄에는 개의 정수 가 주어지며, 이는 번째 백신을 로봇의 초기 위치에서 정확히 동쪽으로 미터 떨어진 곳에서 수거해야 함을 나타낸다. 여러 백신의 수거 위치가 같을 수 있음에 유의하라.
세 번째 줄에는 개의 정수 가 주어지며, 이는 번째 백신을 로봇의 초기 위치에서 정확히 동쪽으로 미터 떨어진 곳에 배송해야 함을 나타낸다. 여러 백신의 배송 위치가 같을 수 있음에 유의하라.
테스트 케이스의 마지막 줄에는 개의 정수 가 주어진다. 의 절댓값은 번째 이동 명령에서 로봇이 이동해야 하는 미터 수이다. 이 양수이면 번째 이동은 동쪽을 향해야 하고, 음수이면 서쪽을 향해야 한다. 예방 접종은 입력의 번호와 다른 순서로 일어날 수 있지만, 이동 명령은 주어진 순서대로 실행됨에 유의하라.
각 테스트 케이스마다 Case #$x$: $y_1 ~ y_2 ~ \dots ~ y_{\mathbf{M}}$를 포함하는 한 줄을 출력한다. 여기서 는 1부터 시작하는 테스트 케이스 번호이고, 은 주어진 번째 이동 명령을 수행하는 동안 완료된 예방 접종 수이다.
4
5 4
121 312 271 422 75
199 464 160 234 368
271 -109 -70 371
2 2
1 3
4 4
4 -1
2 2
1 4
4 3
4 -1
1 10
1
2
-987654321 -987654321 -987654321 -987654321 -987654321 987654321 987654321 987654321 987654321 987654323
Case #1: 1 0 1 1
Case #2: 2 0
Case #3: 1 1
Case #4: 0 0 0 0 0 0 0 0 0 1
예제 케이스 #1은 문제 설명에서 설명하고 그림으로 나타낸 케이스이다.
예제 케이스 #2과 예제 케이스 #3에서는 수거 장소를 먼저 방문할 때에만 같은 이동 중에 백신을 수거하고 배송할 수 있음에 유의하라. 또한 이동이 끝나는 정확한 순간에도 수거와 배송이 가능함에 유의하라.
예제 케이스 #4에서 로봇은 서쪽으로 미터씩 다섯 번 이동하고, 그다음 동쪽으로 미터씩 네 번 이동한 뒤, 동쪽으로 미터 이동한다. 유일한 수거와 배송은 모두 마지막 이동에서 이루어진다. 명령의 이동 거리가 매우 극단적일 수 있으므로, 로봇이 어느 시점에는 초기 위치에서 서쪽이나 동쪽으로 매우 멀리 떨어질 수 있음에 유의하라.
Copyright Google LLC; sourced from the Google Coding Competitions Archive.
로그인 상태를 확인하는 중입니다.