Searched trought seats with iterator
This commit is contained in:
@@ -10,8 +10,7 @@ std::vector<std::string> read_input_file() {
|
|||||||
std::vector<std::string> data;
|
std::vector<std::string> data;
|
||||||
std::string line;
|
std::string line;
|
||||||
|
|
||||||
while(std::getline(file, line))
|
while(std::getline(file, line)) data.push_back(line);
|
||||||
data.push_back(line);
|
|
||||||
|
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
@@ -28,10 +27,10 @@ int parse_id(std::string ticket) {
|
|||||||
int solve_a(const std::set<int> &ids) { return *ids.rbegin(); }
|
int solve_a(const std::set<int> &ids) { return *ids.rbegin(); }
|
||||||
|
|
||||||
int solve_b(const std::set<int> &ids) {
|
int solve_b(const std::set<int> &ids) {
|
||||||
for(int id = 0; id < 1024; id++)
|
for(auto it = ++ids.begin(); it != ids.end(); it++){
|
||||||
if(!ids.contains(id) && ids.contains(id+1) && ids.contains(id-1))
|
auto prev = it; --prev;
|
||||||
return id;
|
if(*prev + 2 == *it) return *it - 1;
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -39,6 +38,4 @@ int main() {
|
|||||||
std::set<int> ids;
|
std::set<int> ids;
|
||||||
for(auto &ticket: read_input_file()) ids.insert(parse_id(ticket));
|
for(auto &ticket: read_input_file()) ids.insert(parse_id(ticket));
|
||||||
std::cout << solve_a(ids) << " " << solve_b(ids) << std::endl;
|
std::cout << solve_a(ids) << " " << solve_b(ids) << std::endl;
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user