結果

問題 No.3694 犬猿の仲
コンテスト
ユーザー yuki2006
提出日時 2026-08-26 14:26:25
言語 JavaScript
(node v26.7.0 + ACL)
コンパイル:
true
実行:
node _filename_ ONLINE_JUDGE
結果
AC  
実行時間 128 ms / 2,000 ms
+ 23µs
コード長 897 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 44 ms
コンパイル使用メモリ 6,528 KB
実行使用メモリ 97,496 KB
最終ジャッジ日時 2026-09-09 20:50:44
合計ジャッジ時間 2,613 ms
ジャッジサーバーID
(参考情報)
judge2_0 / judge1_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2
other AC * 11
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

const d = require('fs').readFileSync(0, 'utf8').split(/\s+/);
let p = 0;
const n = +d[p++], m = +d[p++];
const head = new Int32Array(n + 1).fill(-1);
const nxt = new Int32Array(2 * m), to = new Int32Array(2 * m);
let ec = 0;
for (let i = 0; i < m; i++) {
  const a = +d[p++], b = +d[p++];
  to[ec] = b; nxt[ec] = head[a]; head[a] = ec++;
  to[ec] = a; nxt[ec] = head[b]; head[b] = ec++;
}
const color = new Int8Array(n + 1).fill(-1);
const q = new Int32Array(n);
let ans = 'Yes';
for (let s = 1; s <= n && ans === 'Yes'; s++) {
  if (color[s] !== -1) continue;
  color[s] = 0;
  let qh = 0, qt = 0; q[qt++] = s;
  while (qh < qt) {
    const v = q[qh++];
    for (let e = head[v]; e !== -1; e = nxt[e]) {
      const u = to[e];
      if (color[u] === -1) { color[u] = color[v] ^ 1; q[qt++] = u; }
      else if (color[u] === color[v]) { ans = 'No'; qh = qt; break; }
    }
  }
}
console.log(ans);
0