Advertisement
Guest User

Untitled

a guest
May 25th, 2016
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Go 2.03 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4.     "fmt"
  5. )
  6. type Node struct {
  7.     index int
  8.     child []Node
  9.     //child []int
  10.     mark string
  11.     f []string
  12. }
  13.  
  14. //var count int = 0
  15.  
  16. func dfs(graph []*Node, v Node, m int, count int){
  17.     fmt.Println(v.index)
  18.     v.mark = "gray"
  19.     v.index = count
  20.     count++
  21.     for i:= 0; i < m; i++{
  22.         if v.child[i].mark == "white"{
  23.             dfs(graph, v.child[i], m, count)
  24.         }
  25.     }
  26.     v.mark = "black"
  27. }
  28.  
  29. func main() {
  30.     var (
  31.         n, m, q         int
  32.         M               [][]int
  33.         S               [][]string
  34.         value          int
  35.         letter         string
  36.         graph          []*Node
  37.         count          int
  38.     )
  39.  
  40.     fmt.Scan(&n, &m, &q)
  41.     graph = make([] *Node, n)
  42.     for i:= 0; i < n; i++{
  43.         graph[i].index = i
  44.         graph[i].mark = "white"
  45.         graph[i].child = make([] Node, m)
  46.         //graph[i].child = make([] int, m)
  47.         graph[i].f = make([] string, m)
  48.     }
  49.     M = make([][] int, n)
  50.     S = make([][] string, n)
  51.     for i:= 0; i < n; i++{
  52.         for j:= 0; j < m; j++{
  53.             M[i] = make([] int, m)
  54.             S[i] = make([] string, m)
  55.         }
  56.     }
  57.     for i:= 0; i < n; i++{
  58.         for j:= 0; j < m; j++{
  59.             fmt.Scan(&value)
  60.             M[i][j] = value
  61.             graph[i].child[j] = *graph[value]
  62.             //graph[i].child[j] = value
  63.         }
  64.     }
  65.     for i:= 0; i < n; i++{
  66.         for j:= 0; j < m; j++{
  67.             fmt.Scan(&letter)
  68.             S[i][j] = letter
  69.             graph[i].f[j] = letter
  70.         }
  71.     }
  72.     fmt.Println("this")
  73.     for i:= 0; i < n; i++{
  74.         for j:= 0; j < m; j++{
  75.             fmt.Println("i = ", i, "j = ", j, " ", graph[i].child[j].index)
  76.         }
  77.     }
  78.     count = 0
  79.     for i:= 0; i < n; i++{
  80.         if graph[i].mark == "white"{
  81.             dfs(graph, *graph[i], m, count)
  82.         }
  83.         count++
  84.     }
  85.     fmt.Println("NEW solution")
  86.     fmt.Print(n, "\n", m, "\n", 0, "\n")
  87.     for i:= 0; i < n; i++{
  88.         for k:= 0; k < n; k++{
  89.             if graph[k].index == i{
  90.                 for l:= 0; l < m; m++{
  91.                     //fmt.Print(graph[k].child[l].index, " ")
  92.                     fmt.Print(graph[k].child[l])
  93.                 }
  94.                 fmt.Print("\n")
  95.             }
  96.         }
  97.     }
  98.     for i:= 0; i < n; i++{
  99.         for k:= 0; k < n; k++{
  100.             if graph[k].index == i{
  101.                 for l:= 0; l < m; m++{
  102.                     fmt.Print(graph[k].f[l], " ")
  103.                 }
  104.                 fmt.Print("\n")
  105.             }
  106.         }
  107.     }
  108. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement