| Task: | Distinct Routes |
| Sender: | Giaco |
| Submission time: | 2025-10-20 17:17:53 +0300 |
| Language: | Rust (2021) |
| Status: | READY |
| Result: | WRONG ANSWER |
| test | verdict | time | |
|---|---|---|---|
| #1 | ACCEPTED | 0.00 s | details |
| #2 | ACCEPTED | 0.00 s | details |
| #3 | ACCEPTED | 0.01 s | details |
| #4 | ACCEPTED | 0.01 s | details |
| #5 | ACCEPTED | 0.00 s | details |
| #6 | ACCEPTED | 0.00 s | details |
| #7 | ACCEPTED | 0.00 s | details |
| #8 | ACCEPTED | 0.00 s | details |
| #9 | ACCEPTED | 0.00 s | details |
| #10 | ACCEPTED | 0.00 s | details |
| #11 | WRONG ANSWER | 0.00 s | details |
| #12 | ACCEPTED | 0.00 s | details |
| #13 | ACCEPTED | 0.00 s | details |
| #14 | WRONG ANSWER | 0.00 s | details |
| #15 | WRONG ANSWER | 0.01 s | details |
Compiler report
warning: unused imports: `Reverse`, `max`, `min`
--> input/code.rs:1:16
|
1 | use std::cmp::{max, min, Reverse};
| ^^^ ^^^ ^^^^^^^
|
= note: `#[warn(unused_imports)]` on by default
warning: unused imports: `BinaryHeap`, `HashMap`, `HashSet`
--> input/code.rs:2:24
|
2 | use std::collections::{BinaryHeap, HashMap, HashSet};
| ^^^^^^^^^^ ^^^^^^^ ^^^^^^^
warning: unused import: `std::process::exit`
--> input/code.rs:4:5
|
4 | use std::process::exit;
| ^^^^^^^^^^^^^^^^^^
warning: 3 warnings emittedCode
use std::cmp::{max, min, Reverse};
use std::collections::{BinaryHeap, HashMap, HashSet};
use std::io::{self, Read};
use std::process::exit;
macro_rules! input {
($it: expr) => {
$it.next().unwrap().parse().unwrap()
};
($it: expr, $T: ty) => {
$it.next().unwrap().parse::<$T>().unwrap()
};
}
/*
mod classes;
mod homework;
fn main() {
// println!("{}", "-".repeat(20));
classes::c14::task2();
// homework::hw5::task2();
// println!("{}", "-".repeat(20));
}
// */
fn dfs(g: &mut Vec<Vec<usize>>, n: usize, i: usize, t: usize, visited: &mut Vec<bool>, path: &mut Vec<usize>) -> bool {
if i==t {
path.push(i);
return true
}
visited[i] = true;
let mut found = false;
for j in 0..n {
if g[i][j]>0 {
if !visited[j] {
found = dfs(g, n, j, t, visited, path);
}
if found {
path.push(i);
g[i][j] = 0;
return true;
}
}
}
false
}
fn main() {
let mut buf = String::new();
io::stdin().read_to_string(&mut buf).unwrap();
let mut it = buf.split_whitespace();
let (n, mut m): (usize, usize) = (input!(it), input!(it));
let mut g: Vec<Vec<usize>> = vec![vec![0; n]; n];
while m>0 {
let (u, v): (usize, usize) = (input!(it), input!(it));
g[u-1][v-1]=1;
m-=1;
}
let mut paths: Vec<Vec<usize>> = vec![];
paths.push(vec![]);
let mut exists_path = true;
let mut n_paths = 0;
while exists_path {
let mut visited = vec![false; n];
exists_path = dfs(&mut g, n, 0, n-1, &mut visited, &mut paths[n_paths]);
if exists_path {
paths.push(vec![]);
n_paths+=1;
}
}
println!("{}", n_paths);
for v in paths {
if !v.is_empty() {
println!("{}", v.len());
for x in v.iter().rev() {
print!("{} ", x + 1);
}
println!();
}
}
}
Test details
Test 1
Verdict: ACCEPTED
| input |
|---|
| 2 1 1 2 |
| correct output |
|---|
| 1 2 1 2 |
| user output |
|---|
| 1 2 1 2 |
Test 2
Verdict: ACCEPTED
| input |
|---|
| 4 2 1 2 3 4 |
| correct output |
|---|
| 0 |
| user output |
|---|
| 0 |
Test 3
Verdict: ACCEPTED
| input |
|---|
| 500 996 1 2 2 500 1 3 3 500 ... |
| correct output |
|---|
| 498 3 1 2 500 3 1 3 500 ... |
| user output |
|---|
| 498 3 1 2 500 3 1 3 500 ... |
Test 4
Verdict: ACCEPTED
| input |
|---|
| 500 499 1 2 2 3 3 4 4 5 ... |
| correct output |
|---|
| 1 500 1 2 3 4 5 6 7 8 9 10 11 12 13 ... |
| user output |
|---|
| 1 500 1 2 3 4 5 6 7 8 9 10 11 12 13 ... |
Test 5
Verdict: ACCEPTED
| input |
|---|
| 2 1 2 1 |
| correct output |
|---|
| 0 |
| user output |
|---|
| 0 |
Test 6
Verdict: ACCEPTED
| input |
|---|
| 40 1000 25 22 15 24 7 33 16 32 ... |
| correct output |
|---|
| 21 44 1 35 39 34 29 32 22 38 20 30 1... |
| user output |
|---|
| 21 37 1 3 6 4 2 5 8 7 9 10 11 12 13 ... |
Test 7
Verdict: ACCEPTED
| input |
|---|
| 75 1000 72 6 46 66 63 45 70 46 ... |
| correct output |
|---|
| 12 30 1 29 24 9 18 63 45 31 66 72 6 ... |
| user output |
|---|
| 12 70 1 3 2 5 16 6 8 26 4 12 22 7 11... |
Test 8
Verdict: ACCEPTED
| input |
|---|
| 100 1000 75 97 7 62 88 25 36 44 ... |
| correct output |
|---|
| 9 51 1 35 15 86 79 34 43 94 83 75 9... |
| user output |
|---|
| 9 91 1 6 34 8 21 23 2 16 35 15 7 4 ... |
Test 9
Verdict: ACCEPTED
| input |
|---|
| 3 2 1 2 2 3 |
| correct output |
|---|
| 1 3 1 2 3 |
| user output |
|---|
| 1 3 1 2 3 |
Test 10
Verdict: ACCEPTED
| input |
|---|
| 11 12 1 2 2 3 3 4 4 5 ... |
| correct output |
|---|
| 2 6 1 2 3 4 5 11 7 1 6 7 8 9 10 11 |
| user output |
|---|
| 2 6 1 2 3 4 5 11 7 1 6 7 8 9 10 11 |
Test 11
Verdict: WRONG ANSWER
| input |
|---|
| 8 9 1 2 2 3 3 8 1 4 ... |
| correct output |
|---|
| 2 5 1 2 6 7 8 5 1 4 5 3 8 |
| user output |
|---|
| 1 4 1 2 3 8 |
Test 12
Verdict: ACCEPTED
| input |
|---|
| 8 9 1 2 1 3 2 3 3 4 ... |
| correct output |
|---|
| 1 8 1 2 3 4 5 6 7 8 |
| user output |
|---|
| 1 8 1 2 3 4 5 6 7 8 |
Test 13
Verdict: ACCEPTED
| input |
|---|
| 7 9 1 2 1 3 2 7 3 4 ... |
| correct output |
|---|
| 3 3 1 2 7 4 1 3 5 7 ... |
| user output |
|---|
| 3 3 1 2 7 4 1 3 4 7 ... |
Test 14
Verdict: WRONG ANSWER
| input |
|---|
| 7 15 3 6 5 2 5 4 3 5 ... |
| correct output |
|---|
| 2 5 1 2 3 6 7 4 1 4 5 7 |
| user output |
|---|
| 1 5 1 2 3 5 7 |
Test 15
Verdict: WRONG ANSWER
| input |
|---|
| 500 986 244 252 224 22 81 484 273 432 ... |
| correct output |
|---|
| 116 5 1 129 142 473 500 5 1 63 158 171 500 ... |
| user output |
|---|
| 92 5 1 3 305 338 500 6 1 10 152 416 438 500 ... |
