#include <iostream> #include <memory> #include <string> #include <map> #include
ID: 3547476 • Letter: #
Question
#include <iostream>
#include <memory>
#include <string>
#include <map>
#include <vector>
#include <queue>
#include <sstream>
using namespace std;
// --------------------------------------------------------------------
class ConnectingCity {
public:
string name;
int distance;
ConnectingCity(string,int);
};
ConnectingCity::ConnectingCity(string a, int b){
name = a;
distance = b;
}
// --------------------------------------------------------------------
// class State{
// public:
// string city;
// string path;
// int distance;
// State(string,string,int);
// State();
// };
// State::State(string c, string p, int d){
// TODO
// }
// --------------------------------------------------------------------
class Map {
map<string, vector<ConnectingCity> > connections;
public:
Map();
vector<ConnectingCity> connectsTo(string);
};
Map::Map(){
// constructing this by hand
connections["Arad"] = vector<ConnectingCity>{ConnectingCity("Zerind", 75), ConnectingCity("Sibiu", 140), ConnectingCity("Timisoara", 118)};
connections["Bucharest"] = vector<ConnectingCity>{ConnectingCity("Urziceni", 85), ConnectingCity("Giurgiu", 90), ConnectingCity("Pitesti", 101), ConnectingCity("Fagaras", 211) };
connections["Craiova"] = vector<ConnectingCity>{ConnectingCity("Pitesti", 138), ConnectingCity("Drobeta", 120), ConnectingCity("Rimnicu Vilcea", 146)};
connections["Drobeta"] = vector<ConnectingCity>{ConnectingCity("Mehadia", 75), ConnectingCity("Craiova", 120)};
connections["Eforie"] = vector<ConnectingCity>{ConnectingCity("Hirsova", 86)};
connections["Fagaras"] = vector<ConnectingCity>{ConnectingCity("Bucharest", 211), ConnectingCity("Sibiu", 99)};
connections["Giurgiu"] = vector<ConnectingCity>{ConnectingCity("Bucharest", 90)};
connections["Hirsova"] = vector<ConnectingCity>{ConnectingCity("Eforie", 86), ConnectingCity("Urziceni", 98)};
connections["Iasi"] = vector<ConnectingCity>{ConnectingCity("Vaslui", 92), ConnectingCity("Neamt", 87)};
connections["Lugoj"] = vector<ConnectingCity>{ConnectingCity("Mehadia", 70), ConnectingCity("Timisoara", 111)};
connections["Mehadia"] = vector<ConnectingCity>{ConnectingCity("Lugoj", 70), ConnectingCity("Drobeta", 75)};
connections["Neamt"] = vector<ConnectingCity>{ConnectingCity("Isai", 87)};
connections["Oradea"] = vector<ConnectingCity>{ConnectingCity("Sibiu", 151), ConnectingCity("Zerind", 71)};
connections["Pitesti"] = vector<ConnectingCity>{ConnectingCity("Bucharest", 101), ConnectingCity("Craiova", 138), ConnectingCity("Rimnicu Vilcea", 97)};
connections["Rimicu Vilcea"] = vector<ConnectingCity>{ConnectingCity("Pitesti", 97), ConnectingCity("Craiova", 146), ConnectingCity("Sibiu", 80)};
connections["Sibiu"] = vector<ConnectingCity>{ConnectingCity("Fagaras", 99), ConnectingCity("Arad", 140), ConnectingCity("Rimnicu Vilcea", 80), ConnectingCity("Oradea", 151)};
connections["Timisoara"] = vector<ConnectingCity>{ConnectingCity("Arad", 118), ConnectingCity("Lugoj", 111)};
connections["Urziceni"] = vector<ConnectingCity>{ConnectingCity("Vaslui", 142), ConnectingCity("Hirsova", 98), ConnectingCity("Bucharest", 83)};
connections["Vaslui"] = vector<ConnectingCity>{ConnectingCity("Isai", 92), ConnectingCity("Urziceni", 142)};
}
vector<ConnectingCity> Map::connectsTo(string theCity){
return connections[theCity];
}
// --------------------------------------------------------------------
//-------------------------------------
//
// F I N D R O U T E
//
// need to implement
//
//-------------------------------------
//string findRoute(string startCity, string goalCity, Map theMap){
//
// create a queue
// create a start state and put it on the queue
// while the queue is not empty
// pop a state off the queue & call it current state
// if current state equals goal state
// return a string containing the path and the distance
// else
// for every city you can get to from the current city
// construct a state representing that city
// put that state on the queue
// DONE
//}
void test(Map theMap){
// show how iterators work
vector<ConnectingCity> c = theMap.connectsTo("Sibiu");
for (auto it = c.begin(); it != c.end(); ++it){
cout << it->name << endl;
}
//
//
//
// how queues work
//
cout << " QUEUE EXAMPLE ";
queue<string> myQueue;
myQueue.push("Sibiu");
myQueue.push("Arad");
myQueue.push("Budapest");
myQueue.push("Lugoj");
while(!myQueue.empty()){
cout << myQueue.front() << endl;
myQueue.pop();
}
}
int main(){
Map map = Map();
test(map);
//cout << findRoute("Arad", "Arad", map) << endl;
//cout << findRoute("Arad", "Zerind", map) << endl;
//cout << findRoute("Arad", "Bucharest", map) << endl;
}
Explanation / Answer
/* * CVE-2012-2122 checker * * You may get differing results with/without -m32 * * Joshua J. Drake */ #include #include int main(void) { int one, two, ret; time_t start = time(0); time_t now; srand(getpid()*start); while (1) { two = rand(); ret = memcmp(&one, &two, sizeof(int)); if (ret < -128 || ret > 127) break; time(&now); if (now - start > 10) { printf("Not triggered in 10 seconds, *probably* not vulnerable.. "); return 1; } } printf("Vulnerable! memcmp returned: %d ", ret); return 0; }Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.