if(n==1)return v[0]; if(v[0]!=v[1])return v[0]; if(v[n-1]!=v[n-2])return v[n-1]; low=1;high=n-2; while(low<high) { mid=high-((high-low)/2); if(v[mid]!=v[mid-1] && v[mid]!=v[mid+1])return v[mid]; if((mid%2==0 && v[mid-1]==v[mid]) || (mid%2==1 && v[mid+1]==v[mid])) { high=mid-1; } else if((mid%2==1 && v[mid-1]==v[mid]) || (mid%2==0 && v[mid+1]==v[mid])) { low=mid+1; } }