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