헤네시스 오솔길 (Easy)

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

요약
모든 버섯의 방향을 뒤집는 시점을 골라 왼쪽으로 빠져나가는 버섯 수를 최대로 만들고, 그 명령 시각을 출력한다.
난이도

어려움10점 중 8점

유형
시뮬레이션, 완전 탐색, 그리디, 구현
정답자
아직 제출이 없습니다

문제

헤네시스 오솔길의 좌우로 늘어진 길이 4L4L의 필드에 주황버섯이 NN마리 있습니다. 이 주황버섯들은 모든 버섯들의 어머니와 같은 존재, 머쉬맘의 명령을 받고 모였습니다.

처음에 ii번 주황버섯은 필드의 왼쪽 끝에서 4P_i+14P\_i+1만큼 떨어진 곳에 있으며, 주황버섯은 정해진 왼쪽 혹은 오른쪽 방향을 바라보고 있습니다. (1≤i≤N)(1 \le i \le N) 주황버섯은 매 초마다 다음 규칙을 따라 이동합니다.

  • 주황버섯은 자기가 바라보는 방향으로 11만큼 이동합니다.
  • 이동 후에 같은 위치에 있는 주황버섯이 두 마리 이상이라면, 모여있는 모든 주황버섯은 다음 시각부터 방향을 바꿔 반대 방향으로 이동합니다.
  • 주황버섯이 필드 끝에 도달한다면, 주황버섯은 필드에서 벗어나게 됩니다.

머쉬맘은 아래의 상황에서 주황버섯들에게 방향을 바꿀 것을 명령할 수 있습니다.

  • 모든 주황버섯이 움직이기 전인 00초 째에.
  • 주황버섯 한 마리가 필드를 빠져나갈 때.

머쉬맘이 명령을 내리면 모든 주황버섯들의 이동 방향의 좌우가 바뀝니다.

머쉬맘은 주황버섯들을 이끌고 헤네시스를 침공하려고 합니다. 따라서 헤네시스가 있는 방향인 왼쪽으로 빠져나가는 주황버섯의 수를 최대화하고 싶습니다. 필드의 왼쪽 끝에서 빠져나오는 주황버섯 수의 최댓값과, 이 때 어떤 방식으로 명령해야 하는지 출력하세요.

LL 과 P_iP\_i가 정수라면 어떤 시점이든 두 마리 이상의 주황버섯이 한 번에 필드를 빠져나가거나, 주황버섯이 필드를 빠져나갈 때 두 마리 이상의 주황버섯이 만나는 경우가 없다는 것을 증명할 수 있습니다.

입력

첫 줄에는 주황버섯의 수 NN과 필드의 길이와 관련 있는 정수 LL이 공백으로 구분되어 주어집니다. (1≤N≤70;(1 \le N \le 70; 1≤L≤100)1 \le L \le 100)

다음 NN개의 줄의 ii번째 줄에는 주황버섯의 위치와 관련 있는 정수 P_iP\_i와 주황버섯의 진행방향을 의미하는 문자 C_iC\_i가 공백으로 구분되어 주어집니다. (0≤P_i<L)(0 \le P\_i \lt L) C_iC\_i가 L인 경우 주황버섯이 처음에 왼쪽 방향을, R인 경우 주황버섯이 처음에 오른쪽 방향을 보고 있다는 의미입니다. 처음에 중복되는 위치에 있는 주황버섯은 존재하지 않습니다.

출력

첫 줄에 필드의 왼쪽 끝으로 빠져나오는 주황버섯 수의 최댓값을 출력하세요.

둘째 줄에 머쉬맘 명령의 횟수 KK를 출력하세요. (0≤K≤N+1)(0 \le K \le N+1)

KK가 양수인 경우, 셋째 줄에 00 이상 NN 이하의 서로 다른 KK개의 정수를 공백으로 구분하여 출력하세요.

  • 00을 출력한 경우, 모든 주황버섯이 움직이기 전인 00초째에 머쉬맘이 명령합니다.
  • ii를 출력한 경우, ii번 주황버섯이 필드에서 빠져나간 이후 명령합니다. (1≤i≤N)(1 \le i \le N)

정수를 출력하는 순서는 상관 없으며, 정답이 여럿인 경우 아무거나 하나 출력하세요.

예제2

  1. 예제 1

    입력
    4 5
    1 L
    3 R
    4 R
    2 L
    
    예상 출력
    2
    0
    
  2. 예제 2

    입력
    4 7
    1 L
    3 R
    4 R
    2 L
    
    예상 출력
    4
    5
    0 1 2 3 4