グラフの探索

const V: i32;

fn dfs(v: i32, c: i32) -> bool {
   let color: Vec<i32> = Vec::new();
   color[v] = c;
   for i in 0..G.len() {
      if color[G[v][i]] == c {
         return false;
      } 
      if color[G[v][i]] == 0 && !dfs(G[v][i], -c) {
         return false;
      }
   }
   return true;
}

fn main() {
   for i in 0..V {
      if color[i] == 0 {
         if !dfs(i, 1) {
            println!("No");
         }
      }
   }
   println!("Yes");
}