請設計一個程式,模擬一個基本的邏輯電路系統。這個電路系統由數個輸入端口、邏輯閘和輸出端口組成,您需要模擬電路中的訊號傳遞與閘的運算求出所有輸出端口的數值,並計算整個電路的最大延遲時間。
電路包含以下元件:
請模擬這個電路系統,確定每個閘的輸出值,以及計算整個電路的最大延遲時間,最大延遲時間即訊號從輸入端口傳遞到輸出端口可能經過最多邏輯閘的數量。
第一行包含四個整數,依序為 $p、q、r、m$。$p(1 \le p \le 10^3)$ 代表輸入端口的數量,$q(1 \le q \le 5 \times 10^4$ 代表邏輯閘的數量,$r(1 \le r \le 10^3)$ 代表輸出端口的數量,而 $m$ 代表連接線的數量。
接下來一行有 $p$ 個整數 $v_1, v_2, \dots, v_p$,代表編號為 $1$ 到 $p$ 輸入端口的二進制值(0 或 1)。
接下來一行有 $q$ 個整數 $t_1, t_2, \dots, t_q$,代表編號為 $p + 1$ 到 $p + q$ 的邏輯閘的類型(1 為 AND、2 為 OR、3 為 XOR、4 為 NOT)。
最後的 $m$ 行,每行包含兩個整數,代表連接線的起始端口和終端端口的編號。
每個輸入端口和邏輯閘的輸出會連到至少 $1$ 個至多 $20$ 個其他邏輯閘和輸出端口的輸入,且邏輯閘電路不會接出迴路。
子題分數:
第一行輸出一個整數,表示計算出的特定端口的最大延遲時間,測試資料保證最大延遲不高過 $100$。
第二行輸出 $r$ 個二進制值(0 或 1),代表每一個輸出閘編號由小到大的輸出數值。
4 5 4 13 1 0 1 0 1 2 3 4 1 1 5 2 5 2 6 3 6 3 7 4 7 4 8 5 10 6 9 6 11 7 9 8 13 9 12
2 0 1 1 1
5 6 4 15 1 1 0 1 0 2 1 3 4 1 3 1 6 2 7 7 13 7 6 3 7 3 8 4 8 5 9 8 10 9 10 10 14 10 11 9 11 6 12 11 15
3 1 0 1 0
範例 1 解釋:
範例 2 解釋:
編號 | 身分 | 題目 | 主題 | 人氣 | 發表日期 |
39059 | toseanlin@gm ... (Dr. SeanXD) | m933 | 1363 | 2024-01-10 11:08 | |
39485 | youtong826 (Youtong0826) | m933 | 701 | 2024-02-27 03:14 | |
39034 | sophie198205 ... (闕河正) | m933 | 917 | 2024-01-08 21:56 | |
40951 | glps1004@gma ... (Ian) | m933 | 262 | 2024-06-21 11:22 | |
40646 | john1100729@ ... (靖諺) | m933 | 297 | 2024-06-03 20:33 |