Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <sstream>
- #include <vector>
- #include <cctype>
- class Location {
- public:
- Location(std::string& name, std::string& latitude, std::string& longitude) :
- _name(name), _latitude(latitude), _longitude(longitude) {}
- std::string getLocation() {
- std::ostringstream out;
- out << _name << "," << _latitude << "," << _longitude;
- return out.str();
- }
- std::string getName() const {
- return _name;
- }
- std::string getLatitude() const {
- return _latitude;
- }
- std::string getLongitude() const {
- return _longitude;
- }
- private:
- std::string _name;
- std::string _latitude;
- std::string _longitude;
- };
- std::vector<Location> readLocations() {
- std::vector<Location> locations;
- std::string line;
- while (std::getline(std::cin, line) && line != ".") {
- std::vector<std::string> currLocation;
- std::istringstream istr(line);
- std::string word;
- while (std::getline(istr, word, ',')) {
- currLocation.push_back(word);
- }
- std::string name = currLocation[0];
- std::string latitude = currLocation[1];
- std::string longitude = currLocation[2];
- locations.emplace_back(name, latitude, longitude);
- }
- return locations;
- }
- std::vector<std::string> readQueries() {
- std::vector<std::string> queries;
- std::string line;
- while (std::getline(std::cin, line) && line != ".") {
- queries.push_back(line);
- }
- return queries;
- }
- void processSolution(std::vector<Location>& locations, std::vector<std::string>& queries) {
- for (auto& query : queries) {
- if (isalpha(query[0])) {
- for (auto& location : locations) {
- if (query == location.getName()) {
- std::cout << location.getLocation() << std::endl;
- }
- }
- }
- else {
- std::istringstream istr(query);
- std::string currLatitude;
- std::string currLongitude;
- istr >> currLatitude >> currLongitude;
- for (auto& location : locations) {
- if (currLatitude == location.getLatitude() && currLongitude == location.getLongitude()) {
- std::cout << location.getLocation() << std::endl;
- }
- }
- }
- }
- }
- int main() {
- auto locations = readLocations();
- auto queries = readQueries();
- processSolution(locations, queries);
- }
Advertisement
Add Comment
Please, Sign In to add comment