아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

수열 연산

시간 제한1초메모리 제한512 MB

요약
1 이상 K 이하 값으로 이루어진 두 수열 C와 D가 주어질 때, 길이 M 이상인 순증가 부분수열의 삽입과 삭제만으로 C를 D로 바꿀 수 있는지 판정하고 연산을 출력한다.
난이도

보통10점 중 7점

유형
그리디, 구현, 구간
정답자
아직 제출이 없습니다

문제

모든 수가 11 이상 KK 이하의 수로 구성된 수열이 있다. 이 수열에 다른 연속한 부분수열을 삽입하거나 삭제하는 연산을 원하는 만큼 할 수 있다. 단, 이 수열은 길이가 MM 이상이어야 하며, 수열의 각 수 또한 11 이상 KK 이하의 정수여야 한다.

연산 전의 수열이 A_0,A_1,⋯ ,A_L−1A\_0, A\_1, \cdots, A\_{L-1}인 길이 LL의 수열이라고 하자. 각 연산은 다음과 같이 표현할 수 있고, 등장하는 모든 수는 정수이다.

  • + P N,B_0 B_1 ⋯ B_N−1+ \ P \ N \\, B\_0 \ B\_1 \ \cdots \ B\_{N-1}

    • 수열 AA의 PP 번째 위치 앞에 수열 B_0,B_1,⋯ ,B_N−1B\_0, B\_1, \cdots, B\_{N-1}을 추가한다는 의미이다.
      • P=LP = L 인 경우에, 수열의 가장 뒤에 B_0,B_1,⋯ ,B_N−1B\_0, B\_1, \cdots, B\_{N-1} 을 추가한다는 의미이다.
    • 0≤P≤L;N≥M;1≤B_0<B_1<⋯<B_N−1≤K0 \le P \le L; N \ge M; 1 \le B\_0 < B\_1 < \cdots < B\_{N-1} \le K를 만족해야 한다.
    • 이후, 수열은 A_0,A_1,⋯ ,A_P−1,B_0,B_1,⋯ ,B_N−1,A_P,A_P+1,⋯ ,A_L−1A\_0, A\_1, \cdots, A\_{P-1}, B\_0, B\_1, \cdots, B\_{N-1}, A\_{P}, A\_{P+1}, \cdots, A\_{L-1}이 된다.
  • − P N- \ P \ N

    • 수열의 AA의 PP 번째 위치부터 NN 개의 수를 제거한다는 의미이다.
    • 0≤P;N≥M;P+N≤L;A_P<A_P+1<⋯<A_P+N−10 \le P; N \ge M; P+N \le L; A\_{P} < A\_{P+1} < \cdots < A\_{P+N-1}을 만족해야 한다.
    • 이후, 수열은 A_0,A_1,⋯ ,A_P−1,A_P+N,A_P+N+1,⋯ ,A_L−1A\_0, A\_1, \cdots, A\_{P-1}, A\_{P+N}, A\_{P+N+1}, \cdots, A\_{L-1}이 된다.

예를 들어, K=9,M=2K = 9, M = 2일 때, 수열 3,2,7,8,9,1,43, 2, 7, 8, 9, 1, 4에 연산 +,7,3 1,5,9+ \\, 7 \\, 3 \ 1 \\, 5 \\, 9를 적용하면 수열이 3,2,7,8,9,1,4,1,5,93, 2, 7, 8, 9, 1, 4, 1, 5, 9가 되고, 여기에 추가적으로 연산 − 1 4- \ 1 \ 4를 적용하면 수열이 3,1,4,1,5,93, 1, 4, 1, 5, 9가 된다.

KK와 MM, 그리고 두 수열 CC, DD가 주어졌을 때, 수열 CC에서 연산을 원하는 만큼 반복해서 적용해서 수열 DD를 만들 수 있는지를 구하고, 만들 수 있다면 해당 방법을 출력하여라.

입력

입력은 다음과 같은 형태로 주어진다.

KK MM

∣C∣|C|

C_0C\_0 C_1C\_1 ⋯\cdots C_∣C∣−1C\_{|C|-1}

∣D∣|D|

D_0D\_0 D_1D\_1 ⋯\cdots D_∣D∣−1D\_{|D|-1}

출력

수열 CC에서 연산을 원하는 만큼 반복해서 적용해서 수열 DD를 만들 수 없다면 NO를 출력한다. 그렇지 않은 경우 다음과 같은 방법으로 출력한다.

YES

VV

op_1op\_1

op_2op\_2

⋮\vdots

op_Vop\_V

여기서 VV는 연산을 사용하는 횟수이며, ii 번째 연산은 op_iop\_i로 표현되었다. 문제에서 주어진 연산을 문제에서 주어진 조건에 맞게 출력해야 한다.

제한

입력 및 출력에서 사용되는 모든 수는 정수이다.

입력 제한

  • 1≤M,K,∣C∣,∣D∣≤501 \le M, K, |C|, |D| \le 50
  • 1≤C_i≤K1 \le C\_i \le K (0≤i<∣C∣)(0 \le i < |C|)
  • 1≤D_j≤K1 \le D\_j \le K (0≤j<∣D∣)(0 \le j < |D|)

출력 제한

  • 0≤V≤10,0000 \le V \le 10\\, 000
  • 입력 제한에 따른 모든 데이터에 대해서, 답이 존재하는 경우에는 출력 제한을 만족하는 답이 있음을 증명할 수 있다.

힌트

채점기는 공백의 종류나 개수에 민감하지 않지만, 너무 많은 공백을 출력한 경우 오답을 받을 수 있다.

예제1

  1. 예제 1

    입력
    9 2
    7
    3 2 7 8 9 1 4
    6
    3 1 4 1 5 9
    
    예상 출력
    YES
    2
    + 7 3 1 5 9
    - 1 4