1D 게임

시간 제한2초메모리 제한1024 MB

요약
영구 발판과 임시 발판이 놓인 일직선 위를 캐릭터가 이동하며, 임시 발판이 사라지는 주기적 위험 턴을 피해 도착점에 가장 빨리 도달하는 턴 번호를 구한다.
난이도

어려움10점 중 8점

유형
BFS, 그래프, 수학, 그리디
정답자
아직 제출이 없습니다

문제

SCSC에 갓 들어온 뉴비는 고인물들에게 자신의 실력을 보여주기 위해 게임을 개발했다!

뉴비가 개발한 게임은 간단하다. 캐릭터는 가장 왼쪽 끝의 00번부터 가장 오른쪽 끝의 LL번까지 정수로 순서대로 번호가 매겨져 있으며 일렬로 놓여 있는 L+1L+1개의 칸 위를 움직인다. 캐릭터는 00번 칸에서 출발해 매 턴마다 이동하여 LL번 칸에 도달해야 한다. KK개 칸에는 영구 발판이, 나머지 L+1−KL+1-K개 칸에는 임시 발판이 놓여있다. 임시 발판은 특정 턴이 되면 잠시 사라졌다가 다시 생기면서 캐릭터를 떨어뜨려 패배하게 만든다. 이렇게 임시 발판이 사라지는 턴을 위험한 턴이라고 부른다. 시작점인 00번 칸과 도착점인 LL번 칸에는 영구 발판이 놓여 있다.

각 턴은 다음과 같은 순서대로 진행된다. 턴 번호는 00부터 시작하고 캐릭터는 00번 칸에서 출발한다.

  1. 캐릭터가 LL번 칸에 있다면 승리하고 게임이 종료된다. 이때의 턴 번호를 승리 시간이라고 한다.
  2. 현재 턴이 위험한 턴이면 모든 임시 발판이 사라졌다가 다시 생겨난다. 이때 캐릭터가 임시 발판이 있었던 칸에 있다면 아래로 떨어져 패배하고 게임이 종료된다.
  3. 캐릭터는 현재 있는 칸에서 왼쪽 또는 오른쪽으로 11칸 이동하거나 그대로 머무른다. 00번 칸에서 왼쪽으로 이동할 수 없다.
  4. 현재 턴이 종료되고 다음 턴이 시작되며 턴 번호가 11 증가한다.

00번 턴부터 T−1T-1번 턴까지 NN개의 위험한 턴이 있고 턴 번호는 각각 t_1t\_1, t_2t\_2, ⋯\cdots, t_Nt\_N번이다. 위험한 턴은 게임이 시작하는 00번 턴으로부터 TT턴을 주기로 반복된다. 다시 말해 t(t≥0)t(t \geq 0)를 TT로 나눈 나머지 rr가 r∈t_1,t_2,⋯ ,t_Nr \in \\{ t\_1, t\_2, \cdots , t\_N \\}를 만족하면 tt번 턴은 위험한 턴이다. 예를 들어 T=4T=4, N=2N=2, t_1=0t\_1 = 0, t_2=1t\_2 = 1일 때 00, 11, 44, 55, 88, ⋯\cdots번 턴이 위험한 턴이다.

이제 뉴비는 게임의 로직을 모두 완성했다. 하지만 우리의 뉴비는 발판과 위험한 턴의 배열이 주어졌을 때 얼마나 빨리 승리할 수 있을지 잘 모른다. 여러분이 뉴비를 도와 얼마나 빨리 승리할 수 있을지 구해주자!

입력

첫째 줄에 정수 TT와 NN이 공백으로 구분되어 주어진다. (1≤T≤1012;(1\leq T\leq 10^{12}; 1≤N≤106;1\leq N\leq 10^6; N≤T)N\leq T)

둘째 줄에 정수 LL과 KK가 공백으로 구분되어 주어진다. (1≤L≤1012;(1\leq L\leq 10^{12}; 2≤K≤106;2\leq K\leq 10^6; K≤L+1)K\leq L+1)

셋째 줄에 00번 턴과 T−1T-1번 턴 사이에 발생하는 NN개의 위험한 턴의 번호 t_1t\_1, t_2t\_2, ⋯\cdots, t_Nt\_N이 공백으로 구분되어 오름차순으로 주어진다. (0≤t_i≤T−1)(0 \leq t\_i \leq T - 1)

넷째 줄에 영구 발판이 놓인 KK개 칸의 번호 l_1l\_1, l_2l\_2, ⋯\cdots, l_Kl\_K가 공백으로 구분되어 오름차순으로 주어진다. (0≤l_j≤L;(0 \leq l\_j \leq L; l_1=0;l\_1 = 0; l_K=L)l\_K = L)

출력

가능한 승리 시간의 최솟값을 출력한다. 만약 유한 번의 턴 내에 승리할 수 없다면 What is that map newbie...를 출력한다.

LL번 칸에 도달한 즉시 게임이 종료되는 것이 아니라 다음 턴이 시작된 후 과정 1.에서 게임이 종료됨에 유의하라.

힌트

C/C++, Java 등의 언어에서 일부 변수를 int로 선언한 경우 오버플로우가 발생할 수 있음에 유의하라.

예제2

  1. 예제 1

    입력
    4 2
    5 4
    0 1
    0 1 2 5
    
    예상 출력
    8
    
  2. 예제 2

    입력
    5 5
    9 2
    0 1 2 3 4
    0 9
    
    예상 출력
    What is that map newbie...