void BinaryInsert(vector<int>& A, int value)
{
int left = 0;
int right = A.size() - 1;
int mid = left + ((right - left) >> 1);
while (left <= right)
{
if (A[mid] > value)
right = mid - 1;
else if (A[mid] < value)
left = mid + 1;
else
break;
mid = left + ((right - left) >> 1);
}
mid++;
if (mid > A.size() - 1)
{
A.push_back(value);
}
else
{
A.push_back(0);
for (int i = A.size()-1; i > mid;i--)
{
A[i] = A[i-1];
}
A[mid] = value;
}
}