Vertices added to graph
This commit is contained in:
		
					parent
					
						
							
								50398677e8
							
						
					
				
			
			
				commit
				
					
						47c0f0bf76
					
				
			
		
					 1 changed files with 33 additions and 0 deletions
				
			
		
							
								
								
									
										33
									
								
								src/prob8.rs
									
										
									
									
									
								
							
							
						
						
									
										33
									
								
								src/prob8.rs
									
										
									
									
									
								
							| 
						 | 
					@ -0,0 +1,33 @@
 | 
				
			||||||
 | 
					use petgraph::prelude::*;
 | 
				
			||||||
 | 
					use petgraph::matrix_graph::MatrixGraph;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					pub fn solve_part1(content: &str) -> color_eyre::Result<u32> {
 | 
				
			||||||
 | 
					    let (n_line, numbers) = {
 | 
				
			||||||
 | 
					        let mut num_rows = 0_usize;
 | 
				
			||||||
 | 
					        let mut inner_number = Vec::<u32>::new();
 | 
				
			||||||
 | 
					        content.lines().for_each(|line| {
 | 
				
			||||||
 | 
					            let mut line_numbers = line
 | 
				
			||||||
 | 
					                .chars()
 | 
				
			||||||
 | 
					                .map(|c| c.to_digit(10).unwrap())
 | 
				
			||||||
 | 
					                .collect::<Vec<u32>>();
 | 
				
			||||||
 | 
					            inner_number.append(&mut line_numbers);
 | 
				
			||||||
 | 
					            num_rows += 1;
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					        (num_rows, inner_number)
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					    let m_element = numbers.len() / n_line;
 | 
				
			||||||
 | 
					    let _visible_border = (m_element + n_line) * 2 - 4;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    let num_slice = numbers.as_slice();
 | 
				
			||||||
 | 
					    let mut node_indices = vec![NodeIndex::<u16>::default(); num_slice.len()];
 | 
				
			||||||
 | 
					    let idx_slice = node_indices.as_mut_slice();
 | 
				
			||||||
 | 
					    let mut graph = MatrixGraph::<u32, u32, Directed>::with_capacity(m_element * n_line);
 | 
				
			||||||
 | 
					    for j in 0..n_line {
 | 
				
			||||||
 | 
					        for i in 0..m_element {
 | 
				
			||||||
 | 
					            let idx = j * m_element + i;
 | 
				
			||||||
 | 
					            idx_slice[idx] = graph.add_node(num_slice[idx]);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Ok(0)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue