結果
問題 | No.2319 Friends+ |
ユーザー |
|
提出日時 | 2023-05-26 22:39:45 |
言語 | Rust (1.83.0 + proconio) |
結果 |
WA
|
実行時間 | - |
コード長 | 2,322 bytes |
コンパイル時間 | 12,183 ms |
コンパイル使用メモリ | 400,524 KB |
実行使用メモリ | 397,056 KB |
最終ジャッジ日時 | 2024-12-25 08:59:02 |
合計ジャッジ時間 | 44,573 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 34 WA * 11 |
ソースコード
fn main() {let (n, m): (usize, usize) = {let mut line: String = String::new();std::io::stdin().read_line(&mut line).unwrap();let mut iter = line.split_whitespace();(iter.next().unwrap().parse().unwrap(),iter.next().unwrap().parse().unwrap())};let mut p: Vec<usize> = {let mut line: String = String::new();std::io::stdin().read_line(&mut line).unwrap();line.split_whitespace().map(|x| x.parse().unwrap()).collect()};let mut world = vec![Vec::new(); n];for i in 0..n {p[i] -= 1;world[p[i]].push(i);}let mut friend = vec![vec![false; n]; n];for _ in 0..m {let (a, b): (usize, usize) = {let mut line: String = String::new();std::io::stdin().read_line(&mut line).unwrap();let mut iter = line.split_whitespace();(iter.next().unwrap().parse().unwrap(),iter.next().unwrap().parse().unwrap())};friend[a - 1][b - 1] = true;friend[b - 1][a - 1] = true;}let q: usize = {let mut line: String = String::new();std::io::stdin().read_line(&mut line).unwrap();line.trim().parse().unwrap()};for _ in 0..q {let mut flag = false;let (mut x, mut y): (usize, usize) = {let mut line: String = String::new();std::io::stdin().read_line(&mut line).unwrap();let mut iter = line.split_whitespace();(iter.next().unwrap().parse().unwrap(),iter.next().unwrap().parse().unwrap())};x -= 1; y -= 1;if p[x] != p[y] {for &z in world[p[y]].iter() {if friend[x][z] {flag = true;break}}}if flag {for i in 0..world[p[x]].len() {if world[p[x]][i] == x {world[p[x]].remove(i);break}}world[y].push(x);p[x] = p[y];println!("Yes");} else {println!("No");}}}