class Solution {
public:
int sqrt(int x) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
assert(x>=0);
if(x==0)
return 0;
long long left=0;
long long mid=0;
long long right=x;
long long tmp=0;
while(left<=right){
mid=left+(right-left)/2;
tmp=mid*mid;
if(tmp==x)
return mid;
else if(tmp>x)
right=mid-1;
else left=mid+1;
}
return right;
}
};