ABC142 C - Go to School
備忘録
問題
回答
"use strict" function Main(input) { input = input.trim().split('\n'); const N = Number(input[0].trim()); const A = input[1].trim().split(' ').map(Number); let ret = []; for(let i=0; i<N; i++){ let tmp = A[i] - 1; ret[tmp] = i + 1; } console.log(ret.join(' ')); } Main(require("fs").readFileSync("/dev/stdin", "utf8"));
考え方
配列A
はindex + 1
が出席番号、Ai
が登校順となっている。
たとえば、
8 8 2 7 3 4 5 6 1
のようなinput
の場合、配列A
は[8, 2, 7, 3, 4, 5, 6, 1,]
となり、
index
が0
の場合、A[0]
で登校順は8
番目となる。
注意する点は配列のindex
は0
始まりのため、
単純にindex
= 出席番号とすると間違える。
ちなみに、最後の回答でスプレッド演算子(console.log(...ret);
)を使用するとRE
になった。
Submission #10217483 - AtCoder Beginner Contest 142
RE
となった時のケース名を見るとlarge
やmax
とファイル名についているため、
あまりに数の多い配列でスプレッド演算子を使用するとエラーになるっぽい?