---
title: クトゥルフ神話TPRG x AtCoder 「存在しない提出者」
tags: 
author: [佐藤](https://image.docswell.com/user/aomori_sato)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/GJWG5LMW72.jpg?width=480
description: 現代怪異 x Python x AtCoder B 問題
published: September 24, 26
canonical: https://image.docswell.com/s/aomori_sato/5MQ2N2-2026-09-24-100243
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/GJWG5LMW72.jpg)

クトゥルフ神話TRPG × AtCoder
『存在しない提出者』
現代怪異 × Python × AtCoder B問題
自分の記憶より、
提出履歴のほうが正しいとしたら？
1


# Page. 2

![Page Image](https://bcdn.docswell.com/page/4EZLNMQ273.jpg)

第1 話
覚えのないAC
2


# Page. 3

![Page Image](https://bcdn.docswell.com/page/Y76W8NN67V.jpg)

夜のABC
水城蓮、21歳。大学3年生。
PythonでAtCoderを学んでいる。
A問題は安定して解ける。
B問題は、まだ少し考え込む。
通話相手は、親友の佐伯悠斗。
悠斗は高校時代から、蓮が時々会話や時間を失うことを知っている。
けれど、責めない。
分からなくなったら、
今分かることだけ並べよう。
3


# Page. 4

![Page Image](https://bcdn.docswell.com/page/G75M955574.jpg)

Discord通話
深夜のABC。
蓮と悠斗は、いつものように通話をつなぐ。
悠斗：
Bで詰まったら条件を書き出せ。
蓮：
毎回それ言うな。
悠斗：
毎回お前が問題文にない条件を増やすからだろ。
それは競プロの助言であり、
蓮が現実を見失わないための合図でもあった。
4


# Page. 5

![Page Image](https://bcdn.docswell.com/page/9J292NNGER.jpg)

23時過ぎ
A問題はAC。
B問題は解けない。
蓮は眠気に負け、通話を切る。
今日は無理。寝る。
悠斗は笑う。
明日見直せ。
変な条件を足してないか確認しろ。
蓮は「また少し記憶が飛ぶかもしれない」と思った。
けれど、いつものことだと片づけた。
5


# Page. 6

![Page Image](https://bcdn.docswell.com/page/DEY4YPPGJM.jpg)

翌朝
A
AC
B
AC
6


# Page. 7

![Page Image](https://bcdn.docswell.com/page/VJNYP55878.jpg)

提出時刻
蓮には、B問題を解いた記憶がない。
提出履歴には、確かに記録が残っている。
Submission
Problem: B
Result: AC
Time: 23:47
悠斗も覚えている。
お前、寝るって言って落ちただろ。
7


# Page. 8

![Page Image](https://bcdn.docswell.com/page/YE9P3YYXJ3.jpg)

コードの最後
提出コードは、蓮の書き方そのものだった。
変数名。
空行。
コメントの癖。
ただし最後に一行。
# DO NOT COUNT THE FOURTH
蓮は理由も分からず、息が詰まる。
8


# Page. 9

![Page Image](https://bcdn.docswell.com/page/GE8DM669ED.jpg)

第1話：AtCoder問題
B - Forbidden Word
文字列 S が与えられます。S の中に FOURTH が含まれていれば YES 、含まれていなければ NO を出力してください。
9


# Page. 10

![Page Image](https://bcdn.docswell.com/page/LELM399M7R.jpg)

B - Forbidden Word：入出力
入力
S
出力
YES
制約
または NO
1 &lt;= len(S) &lt;= 100
。S は英大文字のみ。
10


# Page. 11

![Page Image](https://bcdn.docswell.com/page/4JMYDZZ6JW.jpg)

B - Forbidden Word：入力例
DO_NOT_COUNT_THE_FOURTH
出力例
YES
11


# Page. 12

![Page Image](https://bcdn.docswell.com/page/PJR9466N79.jpg)

B - Forbidden Word：考え方
in
を使うと、文字列の中に特定の文字列が含まれているか判定できます。
12


# Page. 13

![Page Image](https://bcdn.docswell.com/page/PEXQ2MM8JX.jpg)

模範解答
forbidden_word.py
s = input()
if &quot;FOURTH&quot; in s:
print(&quot;YES&quot;)
else:
print(&quot;NO&quot;)
13


# Page. 14

![Page Image](https://bcdn.docswell.com/page/3EK9MGGLED.jpg)

コード解説
&quot;FOURTH&quot; in s
が真なら、S の中に FOURTH が含まれます。条件分岐で出力を切り替えます。
14


# Page. 15

![Page Image](https://bcdn.docswell.com/page/L73WYNN675.jpg)

AC
Accepted
15


# Page. 16

![Page Image](https://bcdn.docswell.com/page/87DK5WWMJG.jpg)

第1話の終わり
蓮は画面を閉じられない。
# DO NOT COUNT THE FOURTH
四人目を数えるな。
その言葉を知っている気がする。
小さな食卓。
四脚の椅子。
空席を指差す母。
そして、父の声。
無理して見なくていい。
思い出そうとすると、
記憶の手前で何かが止まる。
16


# Page. 17

![Page Image](https://bcdn.docswell.com/page/VJPKG99QE8.jpg)

第2 話
四人目
17


# Page. 18

![Page Image](https://bcdn.docswell.com/page/2EVV6MMPEQ.jpg)

大学の勉強会
蓮、悠斗、美咲、拓真。
今日は普通に四人で集まっている。
悠斗が飲み物を置く。
四本な。
何も起きない。
四という数そのものが怖いわけではない。
18


# Page. 19

![Page Image](https://bcdn.docswell.com/page/57GLNGGQEL.jpg)

先週の話
美咲が言う。
先週の四人目の人、説明うまかったよね。
蓮は止まる。
四人目？
先週は、蓮、美咲、拓真の三人だったはず。
悠斗はその日、来ていない。
19


# Page. 20

![Page Image](https://bcdn.docswell.com/page/4EQYQXXWJP.jpg)

写真
写真には、
椅子が四脚
PCが四台
飲み物が四本
そして、四人写っている。
悠斗にも分かる。
……確かに四人いる。
蓮には、一人だけ認識できない。
20


# Page. 21

![Page Image](https://bcdn.docswell.com/page/KJ4WN66171.jpg)

分かるものだけ数える
悠斗は強く否定しない。
一回、分かるものだけ数えよう。
椅子。
PC。
飲み物。
すべて四つ。
人だけが、蓮には三人。
美咲が小さく言う。
蓮くん、本当に見えてないの？
21


# Page. 22

![Page Image](https://bcdn.docswell.com/page/LE1Y5VV57G.jpg)

第2話：AtCoder問題
B - Missing Number
1 から N までの整数のうち、1つだけ欠けています。与えられた N-1 個の整数から、欠けている整数を出力してください。
22


# Page. 23

![Page Image](https://bcdn.docswell.com/page/GEWG5LLWJ2.jpg)

B - Missing Number：入出力
入力
1行目に N。2行目に N-1 個の整数 A_i。
出力
欠けている整数を出力。
制約
2 &lt;= N &lt;= 100
。A_i は 1 以上 N 以下で重複しない。
23


# Page. 24

![Page Image](https://bcdn.docswell.com/page/47ZLNMM2J3.jpg)

B - Missing Number：入力例
5
1 2 3 5
出力例
4
24


# Page. 25

![Page Image](https://bcdn.docswell.com/page/YJ6W8N56JV.jpg)

B - Missing Number：考え方
set
を使い、1 から N までを順に確認します。存在しない数を見つけたら、それが答えです。
25


# Page. 26

![Page Image](https://bcdn.docswell.com/page/GJ5M95Y5J4.jpg)

模範解答
missing_number.py
n = int(input())
a = list(map(int, input().split()))
seen = set(a)
for x in range(1, n + 1):
if x not in seen:
print(x)
break
26


# Page. 27

![Page Image](https://bcdn.docswell.com/page/9E292NGG7R.jpg)

コード解説
seen
に与えられた数を入れます。 x not in seen で、欠けている数を判定します。
27


# Page. 28

![Page Image](https://bcdn.docswell.com/page/D7Y4YPVGEM.jpg)

AC
Accepted
28


# Page. 29

![Page Image](https://bcdn.docswell.com/page/VENYP5M8J8.jpg)

見つけた
出力は、
4
蓮が提出する。
AC
その瞬間、背後から声がする。
見つけた。
振り返る。
誰もいない。
29


# Page. 30

![Page Image](https://bcdn.docswell.com/page/Y79P3YNXE3.jpg)

第3 話
23時47分
30


# Page. 31

![Page Image](https://bcdn.docswell.com/page/G78DM6K97D.jpg)

履歴調査
蓮と悠斗は提出履歴を調べ始める。
記憶にない提出は、一度だけではなかった。
23:46
23:47
23:49
23:47
23:48
ほとんどが、同じ時刻に集中している。
31


# Page. 32

![Page Image](https://bcdn.docswell.com/page/L7LM39ZMJR.jpg)

スマートフォン
蓮は寝ていたはずの日の記録を見る。
23:13
0歩
23:58
2,184歩
悠斗：
寝ながら歩数増やすタイプ？
蓮は笑えない。
32


# Page. 33

![Page Image](https://bcdn.docswell.com/page/4EMYDZV6EW.jpg)

大学の入退室記録
23:31
Ren Mizuki
蓮は、夜中に大学へ入っている。
しかし記憶がない。
監視カメラの映像を確認する。
蓮は廊下で、
誰かと話しているように見える。
33


# Page. 34

![Page Image](https://bcdn.docswell.com/page/PER9462NJ9.jpg)

画像認識
Persons detected: 2
34


# Page. 35

![Page Image](https://bcdn.docswell.com/page/P7XQ2MD8EX.jpg)

見え方の違い
蓮には一人しか見えない。
悠斗には、二人目の輪郭だけ見える。
だが、顔を説明できない。
悠斗：
顔を見てるはずなのに、
説明しようとすると抜ける。
蓮は初めて思う。
自分だけの問題ではないのかもしれない。
35


# Page. 36

![Page Image](https://bcdn.docswell.com/page/37K9MGXL7D.jpg)

第3話：AtCoder問題
B - Late Logs
N 個の時刻が HH:MM 形式で与えられます。23:40 以上 23:49 以下の時刻がいくつあるか数えてください。
36


# Page. 37

![Page Image](https://bcdn.docswell.com/page/LJ3WYN56J5.jpg)

B - Late Logs：入出力
入力
1行目に N。続く N 行に時刻 T_i。
出力
条件を満たす時刻の個数を出力。
制約
1 &lt;= N &lt;= 100
。
37


# Page. 38

![Page Image](https://bcdn.docswell.com/page/8JDK5WDMEG.jpg)

B - Late Logs：入力例
5
22:10
23:46
23:47
23:59
23:40
出力例
3
38


# Page. 39

![Page Image](https://bcdn.docswell.com/page/VEPKG9XQ78.jpg)

B - Late Logs：考え方
時刻を分に変換します。23:40 は 1420 分、23:49 は 1429 分です。
39


# Page. 40

![Page Image](https://bcdn.docswell.com/page/27VV6MLP7Q.jpg)

模範解答
late_logs.py
n = int(input())
count = 0
for _ in range(n):
t = input()
h, m = map(int, t.split(&quot;:&quot;))
minutes = h * 60 + m
if 23 * 60 + 40 &lt;= minutes &lt;= 23 * 60 + 49:
count += 1
print(count)
40


# Page. 41

![Page Image](https://bcdn.docswell.com/page/5JGLNGXQ7L.jpg)

コード解説
HH:MM
を split(&#039;:&#039;) で分け、時間を分に変換します。あとは範囲内かどうかを if で確認します。
41


# Page. 42

![Page Image](https://bcdn.docswell.com/page/47QYQX8WEP.jpg)

AC
Accepted
42


# Page. 43

![Page Image](https://bcdn.docswell.com/page/KE4WN621J1.jpg)

第3話の終わり
蓮は、記憶より記録を信じ始める。
提出履歴。
歩数。
監視カメラ。
画像認識。
すべてが同じことを示している。
蓮は一人ではなかった。
43


# Page. 44

![Page Image](https://bcdn.docswell.com/page/L71Y5VM5JG.jpg)

第4 話
判決
44


# Page. 45

![Page Image](https://bcdn.docswell.com/page/G7WG5L3WE2.jpg)

父に会う
「四人目を数えるな」
その言葉を聞いた父親は、表情を変えた。
蓮の家は、もともと三人家族だった。
父。
母。
蓮。
だが母親は、三人だけの食卓にいつも四脚目の椅子を置いた。
蓮は言う。
俺、知らないままの方が怖い。
45


# Page. 46

![Page Image](https://bcdn.docswell.com/page/4JZLNMV2E3.jpg)

母親のDV
父親は話し始める。
母親は蓮に、失敗を何度も謝らせた。
食事を抜き、長く立たせ、記憶を否定した。
そんなことはしていない。
お前が間違えて覚えている。
父親にも暴力は向いた。
携帯の監視。
交友関係の制限。
物を投げる。
逃げようとすると、母は言った。
この子を二度と会わせない。
46


# Page. 47

![Page Image](https://bcdn.docswell.com/page/YE6W8NY6EV.jpg)

証拠
父親は何年もかけて証拠を集めた。
録音
写真
医療記録
相談記録
蓮への虐待の記録
そして、離婚裁判を起こした。
母親は反論した。
夫こそ加害者だ。
蓮は父親に言わされている。
47


# Page. 48

![Page Image](https://bcdn.docswell.com/page/GE5M95G5E4.jpg)

蓮の怒り
蓮は父に言う。
どうしてもっと早く助けてくれなかったのか。
父は沈黙する。
長い沈黙のあと、言う。
……怖かった。
俺も、お母さんが怖かった。
蓮は許したわけではない。
ただ、父も被害者だったことを知る。
48


# Page. 49

![Page Image](https://bcdn.docswell.com/page/97292NYGJR.jpg)

離婚成立
裁判では、証拠が積み重なった。
最終的に離婚が成立する。
蓮は父親と暮らすことになった。
父は思った。
これで終わった。
だが、終わらなかった。
49


# Page. 50

![Page Image](https://bcdn.docswell.com/page/DJY4YPGG7M.jpg)

母親の失踪
離婚成立から数日後。
母親は突然消えた。
携帯電話、財布、衣類は残されたまま。
銀行口座にも動きはない。
警察にも相談されたが、見つからない。
失踪した翌朝、幼い蓮は言った。
今度は三人になった。
50


# Page. 51

![Page Image](https://bcdn.docswell.com/page/V7NYP5G8E8.jpg)

四脚の椅子
父は最後に告白する。
母親は昔から、三人家族の食卓に四人分を並べていた。
椅子を四脚
皿を四枚
箸を四膳
蓮が「三人しかいない」と言うと、母は空席を指差した。
ちゃんと四人いるでしょう。
そして母が消えた日の夜、
家にはまた椅子が四脚あった。
父は三脚しか出した覚えがなかった。
51


# Page. 52

![Page Image](https://bcdn.docswell.com/page/YJ9P3YWX73.jpg)

第4話：AtCoder問題
B - Evidence Count
N 個の証拠記録があります。各記録は OK または NG です。 OK の数が K 個以上なら YES 、そうでなければ NO を出力して
ください。
52


# Page. 53

![Page Image](https://bcdn.docswell.com/page/GJ8DM6N9JD.jpg)

B - Evidence Count：入出力
入力
1行目に N と K。2行目に N 個の文字列 S_i。
出力
YES
制約
または NO 。
1 &lt;= K &lt;= N &lt;= 100
。S_i は OK または NG 。
53


# Page. 54

![Page Image](https://bcdn.docswell.com/page/LJLM39PMER.jpg)

B - Evidence Count：入力例
5 3
OK NG OK OK NG
出力例
YES
54


# Page. 55

![Page Image](https://bcdn.docswell.com/page/47MYDZ467W.jpg)

B - Evidence Count：考え方
OK
の数を数え、K 以上かどうか判定します。
55


# Page. 56

![Page Image](https://bcdn.docswell.com/page/P7R946WNE9.jpg)

模範解答
evidence_count.py
n, k = map(int, input().split())
records = input().split()
ok_count = 0
for record in records:
if record == &quot;OK&quot;:
ok_count += 1
if ok_count &gt;= k:
print(&quot;YES&quot;)
else:
print(&quot;NO&quot;)
56


# Page. 57

![Page Image](https://bcdn.docswell.com/page/PJXQ2MP87X.jpg)

コード解説
for で記録を1つずつ見ます。 OK のときだけ数を増やし、最後に K 以上か判定します。
57


# Page. 58

![Page Image](https://bcdn.docswell.com/page/3JK9MGDLJD.jpg)

AC
Accepted
58


# Page. 59

![Page Image](https://bcdn.docswell.com/page/LE3WYNR6E5.jpg)

第4話の終わり
裁判記録は現実を固定する。
録音。
写真。
証言。
判決。
それでも、母親がどこへ消えたのかは分からない。
そして、四脚目の椅子だけが残った。
59


# Page. 60

![Page Image](https://bcdn.docswell.com/page/8EDK5WYM7G.jpg)

第5 話
子供部屋
60


# Page. 61

![Page Image](https://bcdn.docswell.com/page/V7PKG96QJ8.jpg)

保管された荷物
蓮と悠斗は、父が保管していた荷物を調べる。
古い写真。
幼稚園の絵。
子どものノート。
蓮はページをめくるたび、
知らない自分に近づいていく。
61


# Page. 62

![Page Image](https://bcdn.docswell.com/page/2JVV6M3PJQ.jpg)

絵
父。
母。
蓮。
その横に、黒く塗りつぶされた人型。
顔はない。
輪郭も曖昧。
だが、確かに四人目として描かれている。
62


# Page. 63

![Page Image](https://bcdn.docswell.com/page/5EGLNG3QJL.jpg)

ノート
幼い文字。
4にんっていわないと
おかあさんがおこる
別のページ。
みない
かぞえない
悠斗は何も言わず、ページを押さえる。
63


# Page. 64

![Page Image](https://bcdn.docswell.com/page/4JQYQX5W7P.jpg)

書き足された文字
ノートの最後。
明らかに幼児期とは違う筆跡。
ゆうとにいう
悠斗：
これ、高校入ってからの字じゃないか？
蓮には、書いた記憶がない。
64


# Page. 65

![Page Image](https://bcdn.docswell.com/page/K74WN691E1.jpg)

第5話：AtCoder問題
B - Hidden Message
文字列 S と、K 個の位置 P_i が与えられます。S の P_i 文字目を順に取り出して、できる文字列を出力してください。位置は 1indexed です。
65


# Page. 66

![Page Image](https://bcdn.docswell.com/page/LJ1Y5VK5EG.jpg)

B - Hidden Message：入出力
入力
1行目に S。2行目に K。3行目に K 個の整数 P_i。
出力
取り出した文字を連結して出力。
制約
1 &lt;= len(S) &lt;= 100
。 1 &lt;= P_i &lt;= len(S) 。
66


# Page. 67

![Page Image](https://bcdn.docswell.com/page/GJWG5LDW72.jpg)

B - Hidden Message：入力例
YUXUUTO
4
1 3 5 7
出力例
YUTO
67


# Page. 68

![Page Image](https://bcdn.docswell.com/page/4EZLNMG273.jpg)

B - Hidden Message：考え方
Pythonの添字は0から始まります。1-indexed の P_i は P_i - 1 に直して使います。
68


# Page. 69

![Page Image](https://bcdn.docswell.com/page/Y76W8NQ67V.jpg)

模範解答
hidden_message.py
s = input()
k = int(input())
positions = list(map(int, input().split()))
answer = &quot;&quot;
for p in positions:
answer += s[p - 1]
print(answer)
69


# Page. 70

![Page Image](https://bcdn.docswell.com/page/G75M95R574.jpg)

コード解説
p - 1
でPythonの添字に変換します。取り出した文字を answer に足していきます。
70


# Page. 71

![Page Image](https://bcdn.docswell.com/page/9J292NDGER.jpg)

AC
Accepted
71


# Page. 72

![Page Image](https://bcdn.docswell.com/page/DEY4YP2GJM.jpg)

第5話の終わり
蓮が覚えていない時間に、
誰かがノートを開いていた。
誰かが悠斗の名前を書いた。
それは敵なのか。
味方なのか。
まだ分からない。
72


# Page. 73

![Page Image](https://bcdn.docswell.com/page/VJNYP58878.jpg)

第6 話
零
73


# Page. 74

![Page Image](https://bcdn.docswell.com/page/YE9P3YKXJ3.jpg)

見覚えのないファイル
蓮のPCに、知らないファイルがある。
REN_READ_THIS.txt
蓮と悠斗は、並んで画面を見る。
悠斗：
開けるぞ。
74


# Page. 75

![Page Image](https://bcdn.docswell.com/page/GE8DM6R9ED.jpg)

メッセージ
蓮へ。
僕はお前じゃない。
でも、お前でもある。
怖いとき、
僕が代わりに起きていた。
蓮は息を止める。
悠斗は、画面から目を逸らさない。
75


# Page. 76

![Page Image](https://bcdn.docswell.com/page/LELM39KM7R.jpg)

零
メッセージの主は、自分を「零」と呼んでいた。
零は悪人格ではない。
母親の怒声。
両親の激しい争い。
四人目を数えろと言われた夜。
蓮が耐えられない場面で、
代わりに記憶を抱えていた自己状態だった。
蓮を壊すためではない。
蓮を守るために。
76


# Page. 77

![Page Image](https://bcdn.docswell.com/page/4JMYDZ26JW.jpg)

AtCoderを使った理由
零は書いていた。
メモは捨てられる。
ファイルは消せる。
蓮は夢だったと思う。
でもAtCoderの提出履歴なら、蓮は必ず見る。
覚えのない提出は、
零が残した外部記憶だった。
77


# Page. 78

![Page Image](https://bcdn.docswell.com/page/PJR946MN79.jpg)

悠斗は信用していい
ファイルの最後。
悠斗は信用していい。
悠斗は小さく息を吐く。
零は、高校時代から悠斗を知っていた。
蓮が記憶を失った時、
悠斗は責めず、事実だけを並べてくれた。
78


# Page. 79

![Page Image](https://bcdn.docswell.com/page/PEXQ2MV8JX.jpg)

警告
四人目を認識するな。
お前があれを人間として数えたら、
あれもお前を完全に認識する。
蓮は、提出コードの一行を思い出す。
# DO NOT COUNT THE FOURTH
79


# Page. 80

![Page Image](https://bcdn.docswell.com/page/3EK9MGQLED.jpg)

第6話：AtCoder問題
B - Only Once
N 個の文字列が与えられます。ちょうど1回だけ出現する文字列を、入力順で最初に出力してください。存在しない場合は None
を出力してください。
80


# Page. 81

![Page Image](https://bcdn.docswell.com/page/L73WYNP675.jpg)

B - Only Once：入出力
入力
1行目に N。続く N 行に文字列 S_i。
出力
条件を満たす文字列、または None 。
制約
1 &lt;= N &lt;= 100
。
81


# Page. 82

![Page Image](https://bcdn.docswell.com/page/87DK5WLMJG.jpg)

B - Only Once：入力例
5
ren
zero
ren
yuto
zero
出力例
yuto
82


# Page. 83

![Page Image](https://bcdn.docswell.com/page/VJPKG92QE8.jpg)

B - Only Once：考え方
辞書で出現回数を数えます。その後、入力順に見て、回数が1のものを探します。
83


# Page. 84

![Page Image](https://bcdn.docswell.com/page/2EVV6MDPEQ.jpg)

模範解答
only_once.py
n = int(input())
words = []
count = {}
for _ in range(n):
s = input()
words.append(s)
if s not in count:
count[s] = 0
count[s] += 1
for s in words:
if count[s] == 1:
print(s)
break
else:
print(&quot;None&quot;)
84


# Page. 85

![Page Image](https://bcdn.docswell.com/page/57GLNGYQEL.jpg)

コード解説
count
辞書に出現回数を保存します。最後に元の順番で確認することで、最初に1回だけ出る文字列を出力できます。
85


# Page. 86

![Page Image](https://bcdn.docswell.com/page/4EQYQXMWJP.jpg)

AC
Accepted
86


# Page. 87

![Page Image](https://bcdn.docswell.com/page/KJ4WN6V171.jpg)

第6話の終わり
蓮は、初めて零を敵ではないと感じる。
零は蓮を乗っ取っていたのではない。
蓮を守っていた。
けれど零が警告する相手は、
まだこちらを完全には見ていない。
87


# Page. 88

![Page Image](https://bcdn.docswell.com/page/LE1Y5V357G.jpg)

第7 話
母が消えた日
88


# Page. 89

![Page Image](https://bcdn.docswell.com/page/GEWG5LPWJ2.jpg)

三人で調べる
蓮。
悠斗。
父親。
三人は、母親が失踪した日の記録を並べる。
裁判の後。
離婚が成立した後。
母親が消えた、その日。
89


# Page. 90

![Page Image](https://bcdn.docswell.com/page/47ZLNMK2J3.jpg)

ログ
18:31
父と蓮が帰宅
20:13
母の携帯が旧自宅付近で通信
21:04
母から父へ着信
21:17
防犯カメラに母
21:18
記録不明
23:47
母の携帯通信停止
空白は、21:18。
90


# Page. 91

![Page Image](https://bcdn.docswell.com/page/YJ6W8N26JV.jpg)

零の記憶
母親は最後に、父と蓮の前に現れていた。
母親。
父親。
蓮。
三人。
だが母親は、空席を見る。
違うよ。
四人でしょう。
91


# Page. 92

![Page Image](https://bcdn.docswell.com/page/GJ5M9525J4.jpg)

迎え
父親は蓮を抱き寄せる。
蓮、見るな。
母親は笑う。
もう遅いよ。
母親は空席へ手を伸ばす。
まるで誰かに手を握られたように。
やっと迎えに来てくれた。
92


# Page. 93

![Page Image](https://bcdn.docswell.com/page/LE3WYNK5E5.jpg)

その後
母親が本当にその場から消えたのか。
外へ歩いていったのか。
零にも分からない。
ただ、零は書いていた。
僕は母親からお前を守っていた。
母親が見ていたものからも守っていた。
93


# Page. 94

![Page Image](https://bcdn.docswell.com/page/8EDK5W3Y7G.jpg)

第7話：AtCoder問題
B - Sort the Logs
N 個のログが HH:MM event の形式で与えられます。時刻順に並べたとき、K 番目の event を出力してください。
94


# Page. 95

![Page Image](https://bcdn.docswell.com/page/V7PKG942J8.jpg)

B - Sort the Logs：入出力
入力
1行目に N と K。続く N 行に時刻 T_i とイベント E_i。
出力
時刻順で K 番目のイベント名。
制約
1 &lt;= K &lt;= N &lt;= 100
。イベント名は英小文字のみ。
95


# Page. 96

![Page Image](https://bcdn.docswell.com/page/2JVV6MXXJQ.jpg)

B - Sort the Logs：入力例
4 2
21:17 camera
18:31 home
23:47 stop
20:13 phone
出力例
phone
96


# Page. 97

![Page Image](https://bcdn.docswell.com/page/5EGLNGVRJL.jpg)

B - Sort the Logs：考え方
HH:MM
を分に変換して、時刻とイベントのペアをソートします。
97


# Page. 98

![Page Image](https://bcdn.docswell.com/page/4JQYQX6Y7P.jpg)

模範解答
sort_logs.py
n, k = map(int, input().split())
logs = []
for _ in range(n):
t, event = input().split()
h, m = map(int, t.split(&quot;:&quot;))
minutes = h * 60 + m
logs.append((minutes, event))
logs.sort()
print(logs[k - 1][1])
98


# Page. 99

![Page Image](https://bcdn.docswell.com/page/K74WN64ZE1.jpg)

コード解説
時刻を分に直してタプル (minutes, event) として保存します。タプルは先頭要素から比較されるため、時刻順に並びます。
99


# Page. 100

![Page Image](https://bcdn.docswell.com/page/LJ1Y5V4DEG.jpg)

AC
Accepted
100


# Page. 101

![Page Image](https://bcdn.docswell.com/page/GJWG5LX872.jpg)

第7話の終わり
母親は消えた。
けれど、逃げたのか。
連れていかれたのか。
それは誰にも分からない。
ただ一つ。
23:47に、通信は止まった。
101


# Page. 102

![Page Image](https://bcdn.docswell.com/page/4EZLNM6973.jpg)

第8 話
存在しない提出者
102


# Page. 103

![Page Image](https://bcdn.docswell.com/page/Y76W8N2D7V.jpg)

23:47
23:47
103


# Page. 104

![Page Image](https://bcdn.docswell.com/page/G75M952874.jpg)

存在しない問題
蓮のAtCoder画面だけに、問題が表示される。
B - Count the People
悠斗にURLを送る。
悠斗の画面では、
404 Not Found
104


# Page. 105

![Page Image](https://bcdn.docswell.com/page/9J292N4VER.jpg)

入力
問題は、人物の入退室ログを処理するものだった。
入力の中に、見覚えのある名前が並ぶ。
FATHER
MOTHER
REN
UNKNOWN
蓮は理解する。
これは家族の記録だ。
105


# Page. 106

![Page Image](https://bcdn.docswell.com/page/DEY4YPMQJM.jpg)

止める声
零：
解くな。
悠斗：
その問題、本当に解かなきゃいけないのか？
蓮：
ここまで来たんだ。
悠斗：
答えが出ても、
それがお前の現実全部じゃないからな。
106


# Page. 107

![Page Image](https://bcdn.docswell.com/page/VJNYP5W278.jpg)

第8話：AtCoder問題
B - Count the People
N 個の入退室ログが与えられます。 enter name なら部屋に追加し、 leave name なら部屋から削除します。最後に部屋に残
っている人数を出力してください。
107


# Page. 108

![Page Image](https://bcdn.docswell.com/page/YE9P3YXDJ3.jpg)

B - Count the People：入出力
入力
1行目に N。続く N 行に action と name。
出力
最後に部屋に残っている人数。
制約
1 &lt;= N &lt;= 100
。action は enter または leave 。
108


# Page. 109

![Page Image](https://bcdn.docswell.com/page/GE8DM625ED.jpg)

B - Count the People：入力例
5
enter FATHER
enter MOTHER
enter REN
leave MOTHER
enter UNKNOWN
出力例
3
109


# Page. 110

![Page Image](https://bcdn.docswell.com/page/LELM39237R.jpg)

B - Count the People：考え方
現在部屋にいる人を set で管理します。入室なら追加、退室なら削除します。
110


# Page. 111

![Page Image](https://bcdn.docswell.com/page/4JMYDZ8MJW.jpg)

模範解答
count_the_people.py
n = int(input())
inside = set()
for _ in range(n):
action, name = input().split()
if action == &quot;enter&quot;:
inside.add(name)
else:
inside.discard(name)
print(len(inside))
111


# Page. 112

![Page Image](https://bcdn.docswell.com/page/PJR9465L79.jpg)

コード解説
set
は重複しない集合です。 add で追加、 discard で存在すれば削除します。最後に len で人数を数えます。
112


# Page. 113

![Page Image](https://bcdn.docswell.com/page/PEXQ2MX6JX.jpg)

AC
Accepted
113


# Page. 114

![Page Image](https://bcdn.docswell.com/page/3EK9MGWGED.jpg)

提出
蓮は提出する。
Output: 2
Result: AC
その瞬間、部屋の空気が変わる。
零の声が遠ざかる。
114


# Page. 115

![Page Image](https://bcdn.docswell.com/page/L73WYN1575.jpg)

指定ラスト
蓮は部屋を見る。
椅子が二脚ある。
一脚には自分。
そしてもう一脚。
ずっと「空席」だと思っていた場所。
初めて、
そこに誰かが座っていることを認識する。
115


# Page. 116

![Page Image](https://bcdn.docswell.com/page/87DK5WXYJG.jpg)

その人物が言う。
「ようやく、私を人間として数えたね」
暗転。
最終話へ続く
116


# Page. 117

![Page Image](https://bcdn.docswell.com/page/VJPKG9P2E8.jpg)

第9 話
正しく数える
117


# Page. 118

![Page Image](https://bcdn.docswell.com/page/2EVV6M2XEQ.jpg)

侵食
蓮の現実が書き換わり始める。
家族写真。
四人。
昔の記録。
四人。
裁判記録にまで、
最初から四人目がいたような情報が現れる。
118


# Page. 119

![Page Image](https://bcdn.docswell.com/page/57GLNGRREL.jpg)

母親は失踪していない
記録が変わる。
母親は失踪していなかった。
父親に電話する。
蓮：
うちって三人家族だったよな？
父親：
何言ってる？
四人だっただろ。
119


# Page. 120

![Page Image](https://bcdn.docswell.com/page/4EQYQXVYJP.jpg)

怪異の声
怪異は母親の声で言う。
君のお母さんは正しかった。
ずっと四人だった。
幼い頃の言葉が重なる。
お前が間違っている。
ちゃんと数えなさい。
蓮は自分の記憶まで疑い始める。
120


# Page. 121

![Page Image](https://bcdn.docswell.com/page/KJ4WN6MZ71.jpg)

零の記録が消える
は空白になる。
過去の提出コメントも変わる。
REN_READ_THIS.txt
# DO NOT COUNT THE FOURTH
が、
# THERE HAVE ALWAYS BEEN FOUR
へ変わる。
121


# Page. 122

![Page Image](https://bcdn.docswell.com/page/LE1Y5V8D7G.jpg)

悠斗が駆けつける
第8話で、通話は突然切れていた。
悠斗は蓮の異変を知っている。
だから家へ向かった。
玄関が開く。
蓮！
部屋の中で、蓮は椅子を見つめている。
122


# Page. 123

![Page Image](https://bcdn.docswell.com/page/GEWG5LZ8J2.jpg)

否定しない
蓮：
四人だったんだ。
母さんが正しかった。
悠斗は、すぐに「違う」とは言わない。
そう見えてるんだな。
そしてノートPCを置く。
じゃあ問題解こう。
123


# Page. 124

![Page Image](https://bcdn.docswell.com/page/47ZLNM19J3.jpg)

最後の問題
悠斗が昔、冗談で言っていた。
いつかお前用のB問題作ってやるよ。
その問題。
B - Same or Different
左右が同じペアを数えるだけ。
でも今は、それが現実への足場になる。
124


# Page. 125

![Page Image](https://bcdn.docswell.com/page/YJ6W8NLDJV.jpg)

第9話：AtCoder問題
B - Same or Different
N 個の整数ペアが与えられます。左右の値が同じペアの個数を出力してください。
125


# Page. 126

![Page Image](https://bcdn.docswell.com/page/GJ5M9518J4.jpg)

B - Same or Different：入出力
入力
1行目に N。続く N 行に整数 a_i, b_i。
出力
左右が同じペアの個数。
制約
1 &lt;= N &lt;= 100
。 1 &lt;= a_i, b_i &lt;= 100 。
126


# Page. 127

![Page Image](https://bcdn.docswell.com/page/9E292N1V7R.jpg)

B - Same or Different：入力例
5
3 8
7 7
4 4
9 2
1 1
出力例
3
127


# Page. 128

![Page Image](https://bcdn.docswell.com/page/D7Y4YPZQEM.jpg)

B - Same or Different：考え方
各行を読み、 a == b のときだけカウントします。問題文にない情報は使いません。
128


# Page. 129

![Page Image](https://bcdn.docswell.com/page/VENYP532J8.jpg)

模範解答
same_or_different.py
n = int(input())
count = 0
for _ in range(n):
a, b = map(int, input().split())
if a == b:
count += 1
print(count)
129


# Page. 130

![Page Image](https://bcdn.docswell.com/page/Y79P3Y9DE3.jpg)

コード解説
入力されたペアだけを見ます。等しいかどうかを確認し、等しい場合だけ count を増やします。
130


# Page. 131

![Page Image](https://bcdn.docswell.com/page/G78DM6957D.jpg)

AC
Accepted
131


# Page. 132

![Page Image](https://bcdn.docswell.com/page/L7LM39W3JR.jpg)

入力されたものだけ見ろ
悠斗：
Nは？
蓮：
5。
悠斗：
1行目。3 と 8。同じか？
蓮：
違う。
悠斗：
じゃあ、それだけ見ろ。
132


# Page. 133

![Page Image](https://bcdn.docswell.com/page/4EMYDZ9MEW.jpg)

問題文にない条件
怪異：
4だ。
母親の声：
ちゃんと数えなさい。
悠斗：
今それ、問題文にあるか？
蓮は止まる。
悠斗：
入力されたものだけ見ろ。
133


# Page. 134

![Page Image](https://bcdn.docswell.com/page/PER946GLJ9.jpg)

コードは何て言ってる？
実行結果。
3
怪異：
4。
悠斗：
蓮。コードは何て言ってる？
蓮：
……3。
怪異：
4。
134


# Page. 135

![Page Image](https://bcdn.docswell.com/page/P7XQ2MQ6EX.jpg)

蓮の答え
少なくとも、
この入力の答えは3だ。
AC
135


# Page. 136

![Page Image](https://bcdn.docswell.com/page/37K9MG9G7D.jpg)

戻る音
エアコン。
車の音。
時計。
呼吸。
日常の音が戻る。
父親からメッセージが来る。
どうした？ 急に電話して。
裁判記録は、また元に戻っている。
母親は、失踪したままだ。
136


# Page. 137

![Page Image](https://bcdn.docswell.com/page/LJ3WYNW5J5.jpg)

怪異との会話
怪異：
私を見たのに。
蓮：
見た。
だから、いないとは言わない。
怪異：
なら私は人間だ。
蓮：
違う。
137


# Page. 138

![Page Image](https://bcdn.docswell.com/page/8JDK5WKYEG.jpg)

条件を分ける
蓮：
見えること。
存在すること。
人間であること。
全部、別の条件だ。
怪異は笑う。
ずいぶん問題文を読むのが上手くなったね。
そして、空席へ戻る。
138


# Page. 139

![Page Image](https://bcdn.docswell.com/page/VEPKG9K278.jpg)

数か月後
蓮と悠斗は、またABCに参加している。
悠斗：
B何分？
蓮：
18分。
悠斗：
遅。
蓮：
うるさい。
139


# Page. 140

![Page Image](https://bcdn.docswell.com/page/27VV6MVX7Q.jpg)

父との距離
蓮は父親とも、少しずつ話すようになった。
母親がどこへ消えたのかは、今も分からない。
怪異に連れていかれたのか。
自分でどこかへ行ったのか。
結論は出さない。
140


# Page. 141

![Page Image](https://bcdn.docswell.com/page/5JGLNGLR7L.jpg)

空席
蓮の部屋。
椅子が二脚。
一脚には蓮。
もう一脚は空席。
蓮はもう、無理に数えない。
PCには、
A
AC
B
AC
141


# Page. 142

![Page Image](https://bcdn.docswell.com/page/47QYQXYYEP.jpg)

次の問題
C - Recognition
蓮：
……今日はここまで。
悠斗：
逃げた。
蓮：
戦略的撤退。
PCを閉じる。
142


# Page. 143

![Page Image](https://bcdn.docswell.com/page/KE4WN6WZJ1.jpg)

23:47
空席から、小さな声。
23:47
またね。
蓮は振り返らない。
143


# Page. 144

![Page Image](https://bcdn.docswell.com/page/L71Y5VYDJG.jpg)

『存在しない提出者』
完
144


