日期:2025年5月30日
ZeroJudge 題目連結:m582. 書房 (Study)
解題想法
用一個陣列儲存答案,索引值是碎片編號減 1,內容為所在書架編號。
Python 程式碼
使用時間約為 19 ms,記憶體約為 3.5 MB,通過測試。
import sys
for line in sys.stdin:
n, m = map(int, line.split()) # n 個書架,m 張碎片
ans = [0]*m # 儲存答案用的串列,索引值是碎片編號減 1,內容為所在書架編號
for i, a in enumerate(map(int, input().split()), start=1): # 依序讀取各書架的碎片編號
if a != 0: ans[a-1] = i # 如果 a 不等於 0,設定 ans
print(*ans)
C++ 程式碼
使用時間約為 2 ms,記憶體約為 92 kB,通過測試。
#include <cstdio>
using namespace std;
int main() {
int n, m; // n 個書架,m 張碎片
while(scanf("%d %d", &n, &m) != EOF) {
int ans[m]; // 儲存答案用的串列,索引值是碎片編號減 1,內容為所在書架編號
for(int i=1; i<=n; i++) { // 依序讀取各書架的碎片編號
int a; scanf("%d", &a);
if (a != 0) ans[a-1] = i; // 如果 a 不等於 0,設定 ans
}
for(int i=0; i<m; i++) {
printf("%d", ans[i]);
if (i == m-1) printf("\n");
else printf(" ");
}
}
return 0;
}
沒有留言:
張貼留言