5 #include <sage_graph.h>
6 //#include <smart_graph.h>
7 #include <hugo/dimacs.h>
8 #include <hugo/time_measure.h>
9 #include <hugo/for_each_macros.h>
15 typedef SageGraph Graph;
16 typedef Graph::Node Node;
17 typedef Graph::NodeIt NodeIt;
18 typedef Graph::Edge Edge;
19 typedef Graph::EdgeIt EdgeIt;
20 typedef Graph::OutEdgeIt OutEdgeIt;
24 Graph::EdgeMap<int> cap(g);
25 //readDimacsMaxFlow(std::cin, g, s, t, cap);
26 readDimacs(std::cin, g);
28 Graph::NodeMap<OutEdgeIt> pred(g);
34 Graph::NodeMap<bool> reached(g);
37 std::queue<Node> bfs_queue;
39 while (!bfs_queue.empty()) {
40 Node v=bfs_queue.front();
43 for(g.first(e,v); g.valid(e); g.next(e)) {
53 std::cout << ts << std::endl;
59 Graph::NodeMap<bool> bfs_reached(g);
60 Graph::NodeMap<Edge> bfs_pred(g);
61 Graph::NodeMap<int> bfs_dist(g);
63 Bfs< Graph, Graph::NodeMap<bool>,
64 Graph::NodeMap<Edge>, Graph::NodeMap<int> >
65 bfs(g,bfs_reached, bfs_pred, bfs_dist );
69 while (!bfs.finished()) {
71 if (g.valid(bfs) && bfs.isBNodeNewlyReached())
72 pred.set(bfs.bNode(), bfs);
75 std::cout << ts << std::endl;