多虧了計算機技術,電話系統的功能在過去十年中得到了極大的增強。我們有自動菜單、複雜的答錄機、會議通話功能、群組地址等功能。公司電話系統的一個常見功能是設定呼叫轉移。例如,如果“沒人在家公司”(NHC)的鮑勃去度假,他會將所有打給他的電話轉接給他的同事簡。本問題探討的是電話系統如何跟踪呼叫轉移。
NHC的電話都有四位數的分機號。員工可以通過電話界面輸入適當的信息來設置呼叫轉移。如果員工將要離開,他們會輸入以下信息:他們的分機號、離開的時間、他們將離開的時長,以及他們的電話應轉接到的分機號,具體約束如下:
用戶對於輸入的請求是“正確”的。他們遵循格式規則。他們不會輸入持續時間超過年底的請求。他們不會為自己的分機輸入時間重疊的兩個請求。即使用戶從自己的角度輸入了正確、明確、不重疊的信息,在呼叫轉移系統中仍可能出現退化情況,例如如果鮑勃將他的電話轉接給蘇,蘇將她的電話轉接給喬,喬將他的電話轉接給鮑勃,那麼當有人打電話給這三個人中的任何一個時,他們的電話將會無限期地轉接。為防止這種情況,呼叫轉移系統使用特殊的“死角”號碼 9999。任何撥打給涉及這種退化情況的分機的電話將被轉接到特殊的 9999 分機。
第一行包含一個介於 1 到 10 之間的整數 N,表示你的程式將模擬多少個呼叫轉移系統。每個呼叫轉移系統將由 0 到 100 行 ‘source time duration target’ 表示。這些行代表用戶的請求,設置從源分機號轉移到目標分機號的呼叫,從指定時間開始,持續指定時長,格式為 ‘dddd dddd dddd dddd’。如果源分機號位置為 ‘0000’,則表示這部分輸入的結束。呼叫轉移請求按接收順序列出。它們之後是一個或多個 ‘time extension’ 行,格式為 ‘dddd dddd’,按時間非遞減順序排列,表示在指定時間撥打到分機號的來電。如果時間位置為 ‘9000’,則表示這部分輸入的結束。
輸出的第一行必須讀作 ‘CALL FORWARDING OUTPUT’。接下來是關於每個正在模擬的呼叫轉移系統的信息部分。這些部分中的每一部分應以 ‘SYSTEM N’ 為標題,其中 N 是系統的編號(1、2、...)。在每個部分中,應有一行描述系統中每次來電的結果,格式為 ‘AT dddd CALL TO dddd RINGS dddd’。輸出的最後一行應讀作 ‘END OF OUTPUT’。
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
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
編號 | 身分 | 題目 | 主題 | 人氣 | 發表日期 |
沒有發現任何「解題報告」
|