Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <algorithm>
- #include <vector>
- #include <map>
- using namespace std;
- int binary_search(vector<int> marble, int size, int key)
- {
- int begin = 0;
- int end = size;
- int middle;
- while (begin <= end) {
- middle = (begin + end) / 2;
- if (marble[middle] < key) {
- begin = middle + 1;
- } else if (marble[middle] > key) {
- end = middle - 1;
- } else {
- return middle;
- }
- }
- return -1;
- }
- void testing(vector<int> marble, vector<int> tests, int n_of_tests, int n, int loop){
- cout << "CASE# " << loop << ":" << endl;
- for(int i = 0; i < n_of_tests; i++){
- int aux = tests[i];
- int flag = binary_search(marble,n,aux);
- if(flag == -1){
- cout << tests[i] << " not found" << endl;
- } else {
- cout << tests[i] << " found at " << flag << endl;
- }
- }
- }
- void reading(int loop){
- vector<int> marble;
- int n, n_of_tests, aux;
- cin >> n >> n_of_tests;
- if((n == 0) && (n_of_tests == 0)){
- return;
- }
- for(int i = 0;i < n; i++){
- cin >> aux;
- marble.push_back(aux);
- }
- vector<int> tests;
- for(int i = 0; i < n_of_tests; i++){
- cin >> aux;
- tests.push_back(aux);
- }
- std::sort(marble.begin(),marble.end());
- // for(int i = 0; i < marble.size(); i++){
- // cout << marble[i] << endl;
- // }
- testing(marble,tests,n_of_tests,n,loop);
- reading(loop+1);
- }
- int main(){
- reading(1);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement