結果
| 問題 |
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");
}
}
}