DOJ logoDOJ
题目
最近添加的题目收藏的题目Workbooks
分类DLC比赛小组团队讨论区
排名
解题数量排行榜连续解题排名DOJ Power 排行榜
评测状态
征题登录注册
DOJ logoDOJ

支持 OI 子任务计分、Elo 等级分和 Discord 认证的社区在线评测系统。

题目
题目列表分类
社区
比赛排名讨论区公告举办外部比赛指南
账号
登录注册评测状态
政策
服务条款DLC 使用规则隐私政策API 文档语言运行环境比赛排名奖励评级与表现
© 2026 DOJ
保留所有权利
题解

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​