Problem:
Score : 300 points

Problem Statement

A sequence a_1,a_2,... ,a_n is said to be /\/\/\/ when the following conditions are satisfied:

For each i = 1,2,..., n-2, a_i = a_{i+2}.

Exactly two different numbers appear in the sequence.

You are given a sequence v_1,v_2,...,v_n whose length is even.
We would like to make this sequence /\/\/\/ by replacing some of its elements.
Find the minimum number of elements that needs to be replaced.

Constraints

2 \leq n \leq 10^5

n is even.

1 \leq v_i \leq 10^5

v_i is an integer.

Input

Input is given from Standard Input in the following format:

n
v_1 v_2 ... v_n

Output

Print the minimum number of elements that needs to be replaced.

Sample Input 1

4
3 1 3 2

Sample Output 1

1

The sequence 3,1,3,2 is not /\/\/\/, but we can make it /\/\/\/ by replacing one of its elements: for example, replace the fourth element to make it 3,1,3,1.

Sample Input 2

6
105 119 105 119 105 119

Sample Output 2

0

The sequence 105,119,105,119,105,119 is /\/\/\/.

Sample Input 3

4
1 1 1 1

Sample Output 3

2

The elements of the sequence 1,1,1,1 are all the same, so it is not /\/\/\/.

Solution in Julia (0.5.0) (judge verdict: Time Limit Exceeded)

parseInt(x) = parse(Int, x)
parseMap(x::Array{SubString{String},1}) = map(parseInt, x)
function main()
    n=parseInt(readline())
    v=parseMap(split(readline()))
    cnt=Dict{Int,Int}()
    for i in v
        try
            cnt[i]+=1
        catch
            cnt[i]=1
        end
    end
    OddMax=[0,0,0,0]    #奇数で1番目に多い数,その個数,2番目に多い数,その個数
    EvenMax=[0,0,0,0]   #偶数で1番目に多い数,その個数,2番目に多い数,その個数
    cntkey=keys(cnt)
    for (i,val) in enumerate(v)
        num=cnt[val]
        if i%2==1
            if OddMax[2]<num
                OddMax=[val,num,OddMax[1],OddMax[2]]
            elseif OddMax[4]<num && val!=OddMax[1]
                OddMax=[OddMax[1],OddMax[2],val,num]
            end
        else
            if EvenMax[2]<num
                EvenMax=[val,num,EvenMax[1],EvenMax[2]]
            elseif EvenMax[4]<num && val!=EvenMax[1]
                EvenMax=[EvenMax[1],EvenMax[2],val,num]
            end
        end
    end
    if EvenMax[1]!=OddMax[1]
        ans=0
        for i in 1:n
            if i%2==1 && v[i]!=OddMax[1]
                ans+=1
            elseif i%2==0 && v[i]!=EvenMax[1]
                ans+=1
            end
        end
        println(ans)
    else
        res1=0
        res2=0
        for i in 1:n
            if i%2==1 && v[i]!=OddMax[1]
                res1+=1
            elseif i%2==0 && v[i]!=EvenMax[3]
                res1+=1
            end
        end
        for i in 1:n
            if i%2==1 && v[i]!=OddMax[3]
                res2+=1
            elseif i%2==0 && v[i]!=EvenMax[1]
                res2+=1
            end
        end
        println(min(res1,res2))
    end
end
main()