i164. 比對卡片(進階版)
標籤 :
通過比率 : 72人/121人 ( 60% ) [非即時]
評分方式:
Tolerant

最近更新 : 2023-12-11 19:42

內容

阿宏老師正在帶領一群學生進行比對卡片的遊戲,這個遊戲內容如下:老師和學生各擁有 N 片卡片,雙方都把卡片由左至右 一字排開。 老師希望學生以下列規則進行遊戲:

  • 對老師的每張卡片,學生需找到自己的卡片中和老師卡片數字相同且位置差距最小的卡片。
  • 若有找到,該位置記錄兩張卡片的位置差;若沒有找到,該位置記錄 -1。

舉例來說,若老師與學童的卡牌如下: 

老師: 1  3  5  2  4  2
學生: 1 9 2 4 5 6
以上述規則進行比對遊戲後,孩童的紀錄結果應為
差距: 0 -1 2 1 1 3

請撰寫一個程式,給定卡片數量、老師的卡片內容與學童的卡片內容, 輸出進行遊戲後的紀錄結果。

輸入說明

第一列有一個整數 N (2 ≤ N ≤ 105),代表老師跟孩童各有 N 張卡片。

第二列及第三列皆含有 N 個整數 Ti (1 ≤ i ≤ N , 1 ≤ Ti ≤ 105),以空白間隔。第二列的數字代表老師的卡片內容,第三列的數字代表學童的卡片內容。

  • 第一組(30 分):老師與孩童擁有的牌組是相同的,僅排列時順序可能不同。雙方各自的牌組中沒有重複的數字。
  • 第二組(70 分):無特別限制。
輸出說明

輸出孩童的紀錄結果,每兩個數字間以一個空白隔開。

範例輸入 #1
6
1 3 5 2 4 2
1 9 2 4 5 6
範例輸出 #1
0 -1 2 1 1 3
範例輸入 #2
10
1 2 3 4 5 6 7 8 9 10
1 3 2 4 5 7 9 10 6 8
範例輸出 #2
0 1 1 0 0 3 1 2 2 2
範例輸入 #3
10
1 2 3 4 5 6 7 8 9 10
1 3 4 5 6 7 2 8 9 2
範例輸出 #3
0 5 1 1 1 1 1 0 0 -1
範例輸入 #4
5
2 2 2 2 5
5 2 2 2 2
範例輸出 #4
1 0 0 0 4
範例輸入 #5
5
1 7 2 5 2
1 2 5 2 7
範例輸出 #5
0 3 1 1 1
測資資訊:
記憶體限制: 256 MB
提示 :

這題因為數字範圍較大,所以要思考有沒有 O(N) 或是 O(N logN) 的方法喔

標籤:
出處:
TOI練習賽202204新手組 [管理者: ktlai@cmgsh. ... (賴楷宗) ]

本題狀況 本題討論 排行

編號 身分 題目 主題 人氣 發表日期
30178 fire5386 (becaidorz) i164
O(n)
877 2022-05-05 19:00