消消乐解法:
每当与之前一个相等 count++
每当与之前一个不等 count--
若当前count==0 那么新来的作为全新Num count=1

int main()
{
    int n;
    cin>>n;
    vector<int> arr(n);
    for(int i=0;i<n;i++)
        cin>>arr[i];   //输入
    int num=arr[0];
    int ans=1;
    //假定那个数为arr[0]
    for(int i=1;i<n;i++)
    {
        if(ans==0)  //转变新的num
        {
            num=arr[i];
            ans++;
            continue;
        }
        if(arr[i]==num)
        {
            ans++;
        }
        else
        {
            ans--;
        }  
    }
    int count=0;
    for(int i=0;i<n;i++)
        if(arr[i]==num)
            count++;
    if(count>n/2)
        cout<<num<<endl;
    else
        cout<<-1<<endl;

}