#include #include #include #include #include #include int main(void) { int answer{ 1 }; std::vector time; std::vector distance; std::ifstream input{ "resources/input.txt" }; if (input.is_open()) { int n; std::string line; /* Time */ { std::getline(input,line); line.erase(0, std::strlen("Time:")); std::istringstream sline{ line }; while(sline >> n) { time.push_back(n); } } /* Distance */ { std::getline(input,line); line.erase(0, std::strlen("Distance:")); std::istringstream sline{ line }; while(sline >> n) { distance.push_back(n); } } } input.close(); for (int i = 0; i < time.size(); ++i) { double delta = std::sqrt(time[i] * time[i] - 4 * distance[i]); int from{ static_cast(1 + (time[i] - delta) / 2)}; int to{ static_cast(std::ceil((time[i] + delta) / 2)) }; answer *= to - from; } std::cout << answer << std::endl; return 0; }