File tree Expand file tree Collapse file tree 1 file changed +46
-0
lines changed Expand file tree Collapse file tree 1 file changed +46
-0
lines changed Original file line number Diff line number Diff line change 1+ /** THIS IS AN OUTPUT FILE. NOT EDIT THIS FILE DIRECTLY. **/
2+ use proconio:: input;
3+ use proconio:: marker:: * ;
4+ use std:: marker:: PhantomData ;
5+ use std:: cmp:: * ;
6+ use std:: collections:: * ;
7+
8+ fn main ( ) {
9+ input ! {
10+ n: usize ,
11+ m: usize ,
12+ abw: [ ( Usize1 , Usize1 , usize ) ; m]
13+ }
14+
15+ let max = 1 << 10 + 10 ;
16+ let mut memo = vec ! [ vec![ false ; max] ; n] ;
17+ memo[ 0 ] [ 0 ] = true ;
18+ let mut stack = vec ! [ ( 0 , 0 ) ] ;
19+
20+ let mut g = vec ! [ vec![ ] ; n] ;
21+ for ( a, b, w) in abw {
22+ g[ a] . push ( ( b, w) ) ;
23+ }
24+
25+ while !stack. is_empty ( ) {
26+ let mut new_stack = vec ! [ ] ;
27+ while let Some ( ( ci, cv) ) = stack. pop ( ) {
28+ for & ( ni, nv) in & g[ ci] {
29+ let nmask = cv ^ nv;
30+ if !memo[ ni] [ nmask] {
31+ memo[ ni] [ nmask] = true ;
32+ new_stack. push ( ( ni, nmask) ) ;
33+ }
34+ }
35+ }
36+ stack = new_stack;
37+ }
38+
39+ for i in 0 ..max {
40+ if memo[ n-1 ] [ i] {
41+ println ! ( "{}" , i) ;
42+ return ;
43+ }
44+ }
45+ println ! ( "-1" ) ;
46+ }
You can’t perform that action at this time.
0 commit comments