電動遊戲是二十一世紀中規模最大的娛樂活動之一,而競速破關(speedrunning,又稱速通)絕對是時下其中一個體會這些數位遊戲最受歡迎的方法。在競速破關的領域中,紀錄各段過程的時間花費是絕對不可或缺的工具之一,這個工具會紀錄每一段遊戲過程或者是達成某個里程碑的時間,讓玩家得以檢討以及改進當下的紀錄。
Nathan 是一位競速破關社群中的閃耀新星,不僅如此,他還有自己擁有一套紀錄分段時間的工具 Splee,Splee 以 $\texttt{hh:mm:ss.sss}$ 的格式紀錄時間,詳細說明如下:
除此之外,為了方便,這些時間紀錄與顯示上有兩個額外的規則:
舉例來說,一小時又五秒可以以 $\texttt{01:00:05.000}$、$\texttt{1:00:05.000}$、或$\texttt{1:00:05}$ 表示。五分之一秒可以以完整形式表示:$\texttt{00:00:00.200}$,或者以非常簡潔的形式表示:$\texttt{.2}$。不過,$\texttt{:00.200}$ 不是一個合法的表示方式。這三個字串 $\texttt{0}$、$\texttt{.0}$、或 $\texttt{0.}$ 都可以用來表示完全沒有花費任何時間,但是 $\texttt{.}$ 以及空字串是不被允許的。
在 Nathan 的最近一次世界紀錄嘗試中,其中一段的時間在過程中被弄丟了,幸好他還有總共花費的時間以及其他所有分段的時間,以 Splee 的格式紀錄,你可以設計一隻程式用這些資訊回復弄丟的那段時間嗎?
輸入的第一行只有一個整數 $n$ 代表總共有 $n$ 個段落。
在接下來的 $n$ 行中,每一行可能是一個合法的時間標記,代表該分段的時間,或單一一個問號($\texttt{?}$),代表這一段的時間被弄丟了。
在這之後還有一行,含有一個合法的時間標記,代表整個世界紀錄嘗試的總時間。
輸出一個字串於一行,以題目中時間標記的格式代表被弄丟的分段時間。如果有多種表示方法,任意一種皆會被視為正確。
7 1:39 0:23 1:56 0:02 0:44 0:58 ? 6:50
1:08
6 ? 10 .100 00.010 0:01:00. 00:00:00.001 1:11.111
00:00:01.000
| No. | Testdata Range | Score |
|---|