水题。
/*
ID: fairyroad
TASK:sort3
LANG:C++
*/
#include<fstream>
using namespace std;
ifstream fin("sort3.in");
ofstream fout("sort3.out");
#define MAX 1001
int num[MAX];
int count[3];
int n;
int info[3][2]={0};
inline int ABSS(int x){
return x < 0 ? -x : x;
}
inline void range_count(int range, int start)
{
for(int i = 0; i < count[range]; ++i)
if(num[i+start]!=range+1) ++info[range][ABSS(num[i+start]-range-1)-1];
}
int main()
{
fin>>n;
for(int i = 0; i < n; ++i){
fin>>num[i];
++count[num[i]-1];
}
range_count(0, 0);
range_count(1, count[0]);
range_count(2, count[0]+count[1]);
int max = info[0][1] > info[2][1] ? info[0][1] : info[2][1];
int res = max+ (info[0][0] + info[1][0]+ info[2][0] )/2;
fout<<res<<endl;
return 0;
}