Comments

Now it gets TLE :(

This is my O(nlogn) solution 375186318

To handle cases like [1 1 1 1 1 .. (n/2) times] [2 3 4 5 ... (n/2)+1]

Use: if(a[i]==a[i-1])curr_r = previ_r;