๐ŸŽฒ ๋ฐฑ์ค€ 11562๋ฒˆ ๋ฐฑ์–‘๋กœ ๋ธŒ๋ ˆ์ดํฌ

Jeongeunยท2023๋…„ 12์›” 16์ผ
0

๋ฐฑ์ค€

๋ชฉ๋ก ๋ณด๊ธฐ
146/186

๋ฐฑ์ค€ 11562๋ฒˆ

๐ŸŽจ ์ฐธ๊ณ  ์ฝ”๋“œ
๐ŸŽจ ์ฐธ๊ณ  ์„ค๋ช…
๐Ÿ’Š ์ฒ˜์Œ์— ์ด๊ฒŒ ์™œ ํ”Œ๋กœ์ด๋“œ ์™€์ƒฌ๋กœ ํ‘ธ๋Š”๊ฑฐ์ง€ ํ–ˆ๋Š”๋ฐ.. ์•„์ด๋””์–ด๋ฅผ ๋– ์˜ฌ๋ฆฌ์ง€ ๋ชปํ–ˆ๋‹ค๐Ÿ˜ฅ

์ฝ”๋“œ

const fs = require('fs'); 
const input = fs.readFileSync('/dev/stdin').toString().trim().split('\n');
const [N, M] = input.shift().split(" ").map(Number);
const arr = Array.from(new Array(N + 1), () => new Array(N + 1).fill(Infinity));

for (let m = 0; m < M; m++) {
  const [a, b, c] = input[m].split(" ").map(Number);
  arr[a][b] = 0;
  if (c) arr[b][a] = 0;
  else arr[b][a] = 1;
}

for (let k = 1; k < N + 1; k++) {
  for (let i = 1; i < N + 1; i++) {
    for (let j = 1; j < N + 1; j++) {
      if (i === j) continue;
      if (arr[i][k] + arr[k][j] < arr[i][j]) {
        arr[i][j] = arr[i][k] + arr[k][j];
      }
    }
  }
}
const K = +input[M];

for (let k = M + 1; k < M + 1 + K; k++) {
  const [s, e] = input[k].split(" ").map(Number);
  if (s === e) arr[s][e] = 0;
  console.log(arr[s][e]);
}

0๊ฐœ์˜ ๋Œ“๊ธ€