int main() { Graph G; string input; cin >> input; while(input != "END") { G.vertices.push_back(input); cin >> input; } string first, second; cin >> first; int weight; while(first != "END") { cin >> second; cin >> weight; G.AddEdge(first,second,weight); cin >> first; } //G.PrintOut(); int opcode; cin >> opcode; string A, B; while(opcode != 0) { switch(opcode) { case 1: cin >> A; if(G.FindVertex(A)) cout << 1 << endl; else cout << 0 << endl; break; case 2: cin >> A; cin >> B; cout << G.FindEdgeCost(A, B) << endl; break; case 3: cin >> A; cin >> B; cout << G.IsReachable(A, B) << endl; break; } cin >> opcode; } }
int main () { Graph G; string temp; cin >> temp; while (temp != "END") { if (!G.FindVertex(temp)) { G.vertices.push_back(temp); } cin >> temp; } string key1, key2; int val; cin >> key1; while (key1 != "END") { cin >> key2; cin >> val; if (G.FindVertex(key1) && G.FindVertex(key2)) { G.AddEdge(key1, key2, val); } cin >> key1; } int n; cin >> n; while (n != 0) { switch (n) { case 1: { string param; cin >> param; if (G.FindVertex(param)) cout << "1" << endl; else cout << "0" << endl; break; } case 2: { string param1, param2; cin >> param1; cin >> param2; cout << G.FindEdgeCost(param1, param2) << endl; break; } case 3: { string param1, param2; cin >> param1; cin >> param2; cout << G.IsReachable(param1, param2) << endl; break; } } cin >> n; } return 1; }