#include <iostream>
#
#include <vector>
using namespace std;
int SearchPosition(vector<int>&, int,int);
int main(int argc, const char * argv[]) {
vector<int> v;
int input;
int x;
cout<<"Enter the numbers: ";
while(cin>>input){
v.push_back(input);
}
sort(v.begin(),v.end());
cout<<"Sorted Array is : ";
for (int i=0; i<v.size(); i++) {
cout<<v[i]<<" ";
}
cout<<endl;
cout<<"Enter the number to be searched or added : ";
cin>>x;
int h = SearchPosition(v,v.size(),x);
if(h!=-1){
cout<<"Position is : "<<h+1;
}
cout<<endl;
return 0;
}
int SearchPosition(vector<int>& a,int n,int x){
int start=0;
int end=n-1;
int mid;
while(start<=end){
mid = (start + end)/2;
if(x==a[mid]){
return mid;
cout<<"ddd";
}
else if (x<a[mid]){
end=mid-1;
}
else{
start=mid+1;
}
}
if(mid==0){
return mid;
}
else if(mid==end){
return (mid+1);
}
else{
return mid;
}
return -1;
}
CgojaW5jbHVkZSA8aW9zdHJlYW0+CiMKI2luY2x1ZGUgPHZlY3Rvcj4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBTZWFyY2hQb3NpdGlvbih2ZWN0b3I8aW50PiYsIGludCxpbnQpOwoKaW50IG1haW4oaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiBhcmd2W10pIHsKICAgIHZlY3RvcjxpbnQ+IHY7CiAgICBpbnQgaW5wdXQ7CiAgICBpbnQgeDsKICAgIGNvdXQ8PCJFbnRlciB0aGUgbnVtYmVyczogIjsKICAgIHdoaWxlKGNpbj4+aW5wdXQpewogICAgICAgIHYucHVzaF9iYWNrKGlucHV0KTsKCiAgICB9CiAgICBzb3J0KHYuYmVnaW4oKSx2LmVuZCgpKTsKICAgIGNvdXQ8PCJTb3J0ZWQgQXJyYXkgaXMgOiAiOwogICAgZm9yIChpbnQgaT0wOyBpPHYuc2l6ZSgpOyBpKyspIHsKICAgICAgICBjb3V0PDx2W2ldPDwiICI7CiAgICB9CiAgICBjb3V0PDxlbmRsOwogICAgY291dDw8IkVudGVyIHRoZSBudW1iZXIgdG8gYmUgc2VhcmNoZWQgb3IgYWRkZWQgOiAiOwogICAgY2luPj54OwogICAgaW50IGggPSBTZWFyY2hQb3NpdGlvbih2LHYuc2l6ZSgpLHgpOwogICAgaWYoaCE9LTEpewogICAgICAgIGNvdXQ8PCJQb3NpdGlvbiBpcyA6ICI8PGgrMTsKICAgIH0KICAgIGNvdXQ8PGVuZGw7CiAgICByZXR1cm4gMDsKfQoKaW50IFNlYXJjaFBvc2l0aW9uKHZlY3RvcjxpbnQ+JiBhLGludCBuLGludCB4KXsKICAgIAogICAgaW50IHN0YXJ0PTA7CiAgICBpbnQgZW5kPW4tMTsKICAgIGludCBtaWQ7CiAgICB3aGlsZShzdGFydDw9ZW5kKXsKICAgICAgICBtaWQgPSAoc3RhcnQgKyBlbmQpLzI7CgogICAgICAgIAogICAgICAgIGlmKHg9PWFbbWlkXSl7CiAgICAgICAgICAgIHJldHVybiBtaWQ7CiAgICAgICAgICAgIGNvdXQ8PCJkZGQiOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBlbHNlIGlmICh4PGFbbWlkXSl7CiAgICAgICAgICAgIGVuZD1taWQtMTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZWxzZXsKICAgICAgICAgICAgc3RhcnQ9bWlkKzE7CiAgICAgICAgfQogICAgfQogICAgaWYobWlkPT0wKXsKICAgICAgICByZXR1cm4gbWlkOwogICAgfQogICAgZWxzZSBpZihtaWQ9PWVuZCl7CiAgICAgICAgcmV0dXJuIChtaWQrMSk7CiAgICB9CiAgICBlbHNlewogICAgICAgIHJldHVybiBtaWQ7CiAgICB9CiAgICByZXR1cm4gLTE7CiAgICAKfQo=