2013年7月22日 星期一

380 - Call Forwarding


 Call Forwarding 

在近十年中,資訊科技不斷進步,同時電話系統的功能也越來越強。現在已經有了自動選單、電話自動答錄、電話會議(多人交談) 、群組電話 ... 等。而對於公司電話系統最常見的是轉接功能,例如:當 Bob 不在 NHC 公司時,打給他的電話將會轉接到他的同事 Jane,而這題要請你追蹤轉接的過程,最後輸出轉接到哪裡。

在 NHC 公司中,每個分機號碼由 4 位數字構成,每名員工都會有一個對應的號碼,以及不在位子上時,哪個時段會轉接到另外一名同事上。

員工離開的訊息有哪位員工離開、在哪個時間點離開、離開了多久以及會轉接到哪裡。
而分機號碼的格式如下:
  • 每個分機號碼只會有 4 位數字。
  • 分機號碼 0000 和 9999 為保留號碼,不會指派給任何一名員工。
  • 時間單位以小時計算,逐漸遞增一個小時,時間從 0000 至 8784 (366 天 * 24 小時)。
    而轉接系統每隔一年會重新啟動。
  • 每個轉接的起始時間點 X,持續 Y 小時,即影響的區間為 [X, X+Y] (涵蓋端點)。
如果使用者在正確時間時間打電話時,最後將會有一名員工接聽。而且他們也不會進入同時會遇到可以轉接兩個人的情況,講得簡單一點,不會有任何時間區間會重疊。如果造成無止境的轉接的話,則宣告死機,則使用 9999 這個特別的分機號碼。

Input

輸入第一行有一個 N  (1 <= N <= 10),接下來將會有 N  組測資。

每組測資,將會有數行資訊,至多 100 行。資訊格式如下:

 `source time duration target'

source 將會在 [time, time+duration] 不在,且轉接到 target
且每航資訊會符合數字格式  `dddd dddd dddd dddd'。

source = 0000 時,結束該組資訊。

接下來將會有數筆詢問,詢問格式如下:

`time extension'

表示在 time 時間點打給分機號碼 extension,同時兩者也會符合格式 `dddd dddd'。

直到  time = 9000,結束該組測資。

Output

測資第一行輸出  CALL FORWARDING OUTPUT ,接著輸出每組測資的訊息,
先輸出一行 SYSTEM N,表示第幾組測資組。
接著輸出每組詢問結果  ``AT dddd CALL TO dddd RINGS dddd",意思為在哪個時間點打給分機號碼,最後在哪個分機響了。
 並且程式結束前輸出一行 END OF OUTPUT

Sample Input

2
1111 0100 0200 2222
1111 0301 0500 4444
2222 0200 0200 3333
3333 0250 1000 1111
7777 1000 2000 7777
0000
0050 1111
0150 1111
0200 1111
0225 2222
0270 1111
0320 1111
0320 3333
0900 3000
1250 3333
1250 7777
9000
0000
3000 1111
9000

Sample Output

CALL FORWARDING OUTPUT
SYSTEM 1
AT 0050 CALL TO 1111 RINGS 1111
AT 0150 CALL TO 1111 RINGS 2222
AT 0200 CALL TO 1111 RINGS 3333
AT 0225 CALL TO 2222 RINGS 3333
AT 0270 CALL TO 1111 RINGS 9999
AT 0320 CALL TO 1111 RINGS 4444
AT 0320 CALL TO 3333 RINGS 4444
AT 0900 CALL TO 3000 RINGS 3000
AT 1250 CALL TO 3333 RINGS 1111
AT 1250 CALL TO 7777 RINGS 9999
SYSTEM 2
AT 3000 CALL TO 1111 RINGS 1111
END OF OUTPUT