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

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

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

Baseball Fans

問題に戻る

解説

먼저 각 팀의 대표 팬을 한 명씩 찾는다.

111번부터 iii번까지의 사람들을 모두 포함하는 집합에 대해 query를 호출한다고 하자. 이 반환값이 이전보다 증가했다면, 방금 추가된 iii번 사람은 지금까지 등장하지 않았던 새로운 팀의 팬이다. 따라서 iii번 사람을 그 팀의 대표로 기록한다.

이 과정을 마치면 모든 팀에 대해 대표 팬을 정확히 한 명씩 확보할 수 있다. 대표 팬들은 모두 서로 다른 팀을 응원한다.

이제 아직 분류되지 않은 사람 ppp를 생각하자. 대표 팬들의 어떤 부분집합 SSS에 ppp를 함께 넣어 질의한다. 대표 팬들은 서로 팀이 다르므로, ∣S∣|S|∣S∣명의 대표 팬만 고르면 서로 다른 팀의 수는 ∣S∣|S|∣S∣이다.

  • 반환값이 ∣S∣|S|∣S∣라면, SSS 안에 ppp와 같은 팀의 대표 팬이 있다.
  • 반환값이 ∣S∣+1|S|+1∣S∣+1이라면, SSS 안에는 와 같은 팀의 대표 팬이 없다.

따라서 대표 팬들의 배열에서 이분 탐색을 수행하여, ppp가 어떤 대표 팬과 같은 팀인지 찾을 수 있다.

대표 팬을 찾는 데 NNN번의 질의를 사용하고, 각 사람을 분류하는 데 O(log⁡N)O(\log N)O(logN)번의 질의를 사용한다. N≤100N \le 100N≤100이므로 전체 질의 수는 100010001000번 이하이다.

pp
p