題目連結:
題目大意:
現在有一些人在玩「老鷹抓小雞」這個遊戲,有一人擔任老鷹、一人是母雞、剩下的人為小雞。老鷹要試圖抓到小雞,而母雞要試圖保護身後的小雞。被抓到的小雞會變成老鷹,而老鷹會變成小雞並取代剛剛那隻被抓到的小雞隻位置。
輸入第一列給定一正整數 N (2 ≦ N ≦ 2000),代表有 N 隻小雞。接著的一列給定 N 個正整數(皆介於 1 ~ 10000 之間),代表擔任其中一隻小雞的人之編號。接著一列給定一正整數 E ,代表擔任老鷹的人之編號。再來有一列給定一正整數 Q (1 ≦ Q ≦ 200),代表有玩了 Q 回合。最後一列給定 Q 個正整數,代表每回合被抓到的小雞之編號。
經過 Q 回合後,請輸出最後每隻小雞的編號是多少。
範例輸入:
範例輸入 #1
2
13 35
5
1
35
範例輸入 #2
5
54 88 9 21 27
76
3
88 9 21
範例輸入 #3
7
90 91 92 93 94 95 96
75
5
93 95 96 75 93
範例輸出:
範例輸出 #1
13 5
範例輸出 #2
54 76 88 9 27
範例輸出 #3
90 91 92 96 94 75 95
解題思維:
模擬每個回合即可。
將小雞的編號存成一陣列 C。每回合結束時,有一隻小雞會被抓到,其編號定為 K 。
因為該隻小雞的身分要與老鷹互換,所以我們掃過陣列 C ,一旦找到有小雞的編號等於 K ,即將該隻小雞編號並更為 E,同時將老鷹的編號 E 變為 K 之值。
最後做完 Q 回合後,輸出 C 的內容即可。
此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。