스릴러 게임
우측 버튼을 눌러 기기를 연결해주세요.
문제정보
스릴러 게임
100
참여자
6
정답률
16.6%
0
1

 성준이는 새로 출시된 게임인 구름런에 빠져있다. 구름런은 사이드 스크롤 러닝 액션 장르의 게임으로, 일정한 속도로 이동하는 캐릭터를 조작해 안전하게 목적지에 도착하는 방식의 게임이다. 캐릭터는 한 번 출발하면 1초에 1칸씩 오른쪽으로 달려서 전진하게 된다. 별도의 조작을 하지 않으면 캐릭터는 계속 바닥을 밟으며 달려간다. 출발지와 목적지를 포함한 일부 칸들은 항상 착지할 수 있는 발판이다. 그리고 몇 개의 칸은 일정 시간이 지나면 착지가 불가능한 구름이 놓여져 있다. 구름은 일정 시간 동안만 발판으로 이용할 수 있으며, 주어진 시간이 모두 지나면 더 이상 발판으로 사용할 수 없도록 사라지게 된다. 구름이 사라진 빈 칸은 달려서 이동할 수 없게 된다. 



그림 1. 첫 번째 테스트케이스를 나타낸다. 구름 내부에 적인 숫자는 앞으로 구름을 발판으로 사용할 수 있는 남은 시간을 의미한다. 

 구름런에서 캐릭터는 달리기가 아닌 점프를 사용할 수 도 있다. 점프를 사용해도 이동하는 속도는 동일하지만 일부 발판이나 구름을 밟지 않고 건너뛸 수 있게 된다. 물론 구름이 사라져 비어있는 칸도 건너뛸 수 있다. 캐릭터가 한 번의 점프로 밟지 않고 지나칠 수 있는 최대 칸의 수는 L로 정의한다. 한 번의 점프로 최대 L칸을 밟지 않고 무시할 수 있다. L개 보다 적은 개수의 칸을 지나친 후 다시 착지 하는 것도 가능하다.

 구름런은 출발을 늦게 할 수록 더 높은 점수를 주는 스릴러 규칙이 존재한다. 하지만 너무 늦게 출발하게 될 경우 게임의 규칙을 만족하며 도착할 수 없기 때문에 무한히 기다릴 수 만은 없다. 성준이는 더 높은 기록을 세우기위해 최대한 늦게 출발한 후 목적지에 도착하는 방법을 찾으려고 한다. 캐릭터의 정보와 각 구름에 대한 정보가 입력으로 주어질 때, 출발하지 않고 대기할 수 있는 최대의 시간을 계산하는 프로그램을 작성하시오. 목적지 기둥은 항상 모든 구름보다 오른쪽(X좌표가 큰 방향)에 위치한다. 


그림 2. 출발하지 않고 3초간 시작점에서 대기한 상황의 그림.


 첫 번째 테스트케이스의 경우 3초후에 출발해도 목적지에 도착할 수 있게 된다. 아래의 그림들을 참고하자.



그림 3. 3초 대기한 후 출발하여 1초간 이동한 시점의 그림.

 그림 3의 시점에서는 총 4초만에 첫 번째 구름(x=1)에 도착했다. 바로 앞에 존재하는 2번, 3번칸의 구름들은 도달할 시점에는 사라지게 될 것이므로 발판으로 사용할 수 없다. 그렇기에 해당 칸에서 점프를 해서 4번 칸으로 이동해야만 한다.



그림 4. 위의 그림에서 점프를 한 후 4번 칸으로 이동한 시점의 그림.

 그림 4의 시점에서는 게임시작 후 총 7초가 지났을 시점에 네 번째 칸의 구름에 도착했다. 아직 구름이 사라지지 않았으므로 착지한 후 다음 칸으로 달려갈 수 있다. 이후에 8번칸에 도착한 후 점프로 목적지에 바로 착지할 수 있다.


입력 형식

 첫 번째 줄에는 테스트케이스의 수를 나타내는 1이상 20이하의 자연수 T가 주어진다. 이후 총 T개의 테스트케이스에 대한 입력이 차례로 주어진다.

 테스트케이스의 첫 줄에는 두 개의 자연수가 공백으로 구분되어 L N 형식으로 주어진다.

  • L은 캐릭터의 최대 체력을 나타내는 1이상 10억이하의 자연수다.
  • N은 출발지와 목적지 사이에 존재하는 구름의 수를 나타내는 1이상 10만이하의 자연수다.

 이후 N개의 구름에 대한 정보가 한 줄에 하나씩 주어진다. 각 구름에 대한 정보는 두 개의 자연수로 Xi Ti 형식으로 주어진다.

  • Xi는 구름의 위치를 나타내는 1이상 10억이하의 자연수 좌표다.
  • Ti는 구름이 완전히 사라지기까지 필요한 시간을 나타내는 1이상 10억이하의 자연수다.
  • 모든 구름은 목적지 발판보다 왼쪽에 존재한다고 가정한다.
  • 구름이 존재하지 않는 칸은 모두 발판이 놓여져 있다.
  • 두 개 이상의 구름이 같은 위치에 존재하는 경우는 존재하지 않는다.


출력 형식

 각 테스트 케이스에 대한 정답을 한 줄씩 출력한다. 

  • 목적지에 안전하게 도달할 수 있는 가장 긴 대기시간을 정수로 출력한다.
  • 어떤 경우에도 목적지에 도착할 수 없는 경우 Impossible을 출발한다.
  • 그리고 어느 시점에 출발해도 상관없다면 Always를 출력한다.
입/출력 예시
:
공백
:
줄바꿈
:
예시 1
입력
3
25
25
35
48
911
1012
24
11
22
33
55
50
출력
3
Impossible
Always
⋇ 입출력 형식을 잘 지켜주세요
Q&A
누구나 질문하고 답변할 수 있는 Q&A입니다. 문제를 풀며 어려웠던 부분에 대해 질문해보세요.
이 문제에 관한 질문 (0)