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

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

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

Finding a Friend's Name

問題に戻る

解説

빠진 학생의 이름을 xxx라고 하자.

n>1n>1n>1이면 6반에서 xxx의 바로 앞 학생은 an−1a_{n-1}an−1​이어야 하므로 an−1<xa_{n-1}<xan−1​<x여야 한다. n<mn<mn<m이면 xxx의 바로 뒤 학생은 ana_nan​이어야 하므로 x<anx<a_nx<an​이어야 한다.

따라서 각 이름 xxx에 대해 다음 두 조건만 검사하면 된다.

  • n>1n>1n>1이면 an−1<xa_{n-1}<xan−1​<x.
  • n<mn<mn<이면 .

2학년 전체 명단은 이미 가나다순으로 정렬되어 있다. 조건을 만족하는 이름을 입력 순서대로 모으면 정답도 자동으로 가나다순이 된다.

각 테스트 케이스의 시간 복잡도는 O(m+k)O(m+k)O(m+k)이고, 후보를 저장할 때 공간 복잡도는 O(k)O(k)O(k)이다.

Solution written by GPT5.6

m
x<anx<a_nx<an​