04. Ranges
Кода изпълнява задачата но за 0.920 s. Пробвах няколко вариации но нещо не ми се получава. Ако може някои да подскаже коя е бавната част.
void chckIfInRange(const std::vector<std::shared_ptr<std::pair<int, int>>>& ranges, const std::vector<int>& numbersToCheck)
{
std::string inOrOut;
for (const int& num : numbersToCheck)
{
for (const auto& range : ranges)
{
if (num >= range->first && num <= range->second)
{
inOrOut = "in";
break;
}
else
{
inOrOut = "out";
}
}
std::cout << inOrOut << '\n';
}
}
int main()
{
std::vector<std::shared_ptr<std::pair<int, int>>> ranges;
std::shared_ptr<std::pair<int, int>> range;
int from;
int to;
while (std::cin >> from >> to)
{
range = std::make_shared<std::pair<int, int>>(from,to);
ranges.emplace_back(range);
}
std::cin.clear();
std::cin.ignore(1);
int checkNum;
std::vector<int> numbersToCheck;
while (std::cin >> checkNum)
{
numbersToCheck.emplace_back(checkNum);
}
chckIfInRange(ranges, numbersToCheck);
//system("PAUSE");
return 0;
}