Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // 02. Ranges.cpp : This file contains the 'main' function. Program execution begins and ends there.
- //
- #include <iostream>
- #include<string>
- #include <sstream>
- #include <set>
- #include <algorithm>
- #include <queue>
- #include <vector>
- using namespace std;
- int binarySearch(vector<int>& range, int seek)
- {
- int n = range.size(), first = 0, last = n - 1, mid;
- while (first <= last)
- {
- mid = first + (last - first + 1) / 2;
- if (range[mid] <= seek)
- {
- if(mid < range.size()-1)
- if(range[mid +1] > seek)
- return mid;
- else
- first = mid + 1;
- else
- return mid;
- }
- else if(range[mid] > seek)
- {
- last = mid - 1;
- }
- else
- {
- first = mid + 1;
- }
- }
- return -1;
- }
- int main()
- {
- vector<int> rangeFrom;
- vector<int> rangeTo;
- string input;
- while (true)
- {
- pair <int, int> member;
- getline(cin, input);
- if (input == ".")
- break;
- istringstream istr(input);
- istr >> member.first;
- istr >> member.second;
- rangeFrom.push_back(member.first);
- rangeTo.push_back(member.second);
- }
- sort(rangeFrom.begin(), rangeFrom.end());
- sort(rangeTo.begin(), rangeTo.end());
- int idx;
- while (true)
- {
- getline(cin, input);
- if (input == ".")
- break;
- istringstream istr(input);
- int num;
- istr >> num;
- idx = binarySearch(rangeFrom, num);
- if (idx >= 0 && rangeTo[idx] >= num)
- cout << "in" << endl;
- else
- cout << "out" << endl;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment