DOJ logoDOJ
問題
最近追加された問題保存した問題Workbooks
カテゴリDLCコンテストグループチーム掲示板
ランキング
正解数ランキングストリークランキングDOJ Powerランキング
提出状況
問題募集ログイン新規登録
DOJ logoDOJ

OI形式のサブタスク採点、Eloレーティング、Discord認証を備えたオンラインジャッジです。

問題
問題一覧カテゴリ
コミュニティ
コンテストランキング掲示板お知らせ外部のコンテストを開催するガイド
アカウント
ログイン新規登録ジャッジ状態
ポリシー
利用規約DLCの利用規則プライバシーAPI 文書言語ランタイムコンテストの順位報酬レーティングとパフォーマンス
© 2026 DOJ
All rights reserved
解説

Apple Sharing

問題に戻る

解説

빈 문자열을 안정한 상태라고 하자. 비어 있지 않은 문자열에 대해서는 다음과 같이 왼쪽부터 문자를 확인한다.

현재 높이를 h=0h=0h=0으로 둔다. L을 만나면 hhh를 111 증가시키고, R을 만나면 hhh를 111 감소시킨다. M은 hhh를 바꾸지 않는다.

문자열이 다음 조건을 모두 만족하면 안정한 상태라고 하자.

  • 어느 접두사를 확인한 뒤에도 h<0h<0h<0이 되지 않는다.
  • M을 확인하는 순간에는 h>0h>0h>0이다.
  • 문자열 전체를 확인한 뒤에는 h=0h=0h=0이다.

안정한 상태는 정확히 현재 차례의 플레이어가 패배하는 상태이다.

먼저 안정한 상태에서 한 번의 행동으로 다른 안정한 상태로 이동할 수 없음을 보이자.

표식이 L 또는 M인 iii번 사과를 골라 왼쪽을 가져갔다고 하자. 남는 문자열은 Si+1⋯SNS_{i+1}\cdots S_NSi+1​⋯SN​이다. 이 문자열이 안정하려면 원래 문자열의 ii번째 문자까지 확인한 높이가 이어야 한다. 그러나 이면 그 높이는 양수이고, 이어도 안정한 상태의 정의에 의해 그 높이는 양수이다. 따라서 남은 문자열은 안정하지 않다.

표식이 R 또는 M인 사과를 골라 오른쪽을 가져가는 경우도 대칭적이다. 남는 접두사가 안정하려면 고른 문자 직전의 높이가 000이어야 한다. 하지만 R을 높이 000에서 읽으면 음수가 되어 안정성에 어긋나고, M을 높이 000에서 읽는 것도 허용되지 않는다.

이제 안정하지 않은 상태에서는 한 번의 행동으로 안정한 상태로 이동할 수 있음을 보이자.

왼쪽부터 확인하면서 처음으로 안정성의 지역 조건을 위반하는 위치를 찾는다. 이런 위치가 있다면, 그 문자는 높이 000에서 등장한 R 또는 M이다. 그 직전까지의 접두사는 안정한 상태이다. 해당 사과를 고르고 그 사과와 오른쪽의 모든 사과를 가져가면 그 안정한 접두사만 남길 수 있다.

그런 위치가 없는데 전체 문자열을 확인한 뒤 h>0h>0h>0이라면, 문자열을 오른쪽부터 보면서 L과 R의 역할을 서로 바꾸어 같은 논리를 적용한다. 전체 높이가 반대 부호가 되므로 반드시 처음 위반하는 위치가 존재한다. 그 위치의 원래 표식은 L 또는 M이며, 그 사과와 왼쪽의 모든 사과를 가져가면 안정한 접미사만 남길 수 있다.

따라서 안정한 상태에서는 모든 행동이 불안정한 상태로 가고, 불안정한 상태에서는 안정한 상태로 가는 행동이 항상 존재한다. 빈 문자열은 자신의 차례에 패배하는 상태이므로 귀납적으로 안정한 상태가 정확히 패배 상태이다.

각 테스트 케이스에서 문자열을 한 번 순회하며 위 세 조건을 검사하면 된다. 안정한 상태라면 선공인 루루가 패배하므로 Terra, 그렇지 않으면 Lulu를 출력한다.

시간 복잡도는 O(N)O(N)O(N)이고, 추가 공간 복잡도는 O(1)O(1)O(1)이다. 전체 입력에 대해서는 O(∑N)O(\sum N)O(∑N) 시간에 해결할 수 있다.

Solution written by GPT5.6

i
000
Si=LS_i=\tt{L}Si​=L
Si=MS_i=\tt{M}Si​=M