#ifndef _GRAPH_H #define _GRAPH_H #ifdef DEBUG void printMap(string mapName, nodePair **map, int N); #endif void floyd(std::vector< std::vector > &map, int N); void policeFloyd(std::vector< std::vector > &carMap, std::vector< std::vector > &footMap, int N, int hq); void makeMatrix(std::vector > &listmap, std::vector< std::vector > &map, int N); bool safePath(std::vector< std::vector > &robberMap, std::vector< std::vector > &carMap, std::vector< std::vector > &footMap, int curPos, int dest, copsInfo cops, int &firstNode, int depth = 0); int avoidPolicePath(std::vector< std::vector > &robberMap, std::vector< std::vector > &carMap, std::vector< std::vector > &footMap, int curPos, int dest, copsInfo cops, int &firstNode); int interceptRobber(std::vector< std::vector > &robberMap, std::vector< std::vector > &copMap, int copPos, int robberPos, int target); int findClearPath(int orig, std::vector& targets, World &w, std::vector > &map, std::vector& badNodes, std::vector &moveSeq, int numTries); void markNodes(int center, std::vector&, std::vector > &map, int range); std::set intersectNodes(std::set &set1, std::set &set2); void markNodesSet(int center, std::set &nodeMarks, std::vector > &map, int range); bool isNeighbour(int orig, std::set& targets, World &w, std::vector > &map); #endif