记录编号 134934 评测结果 AAAAAAAA
题目名称 三值的排序 最终得分 100
用户昵称 Gravatar乌龙猹 是否通过 通过
代码语言 C++ 运行时间 0.002 s
提交时间 2014-10-31 07:48:12 内存使用 0.29 MiB
显示代码纯文本
#include<cstdio>
#include<cctype>
using namespace std;

int ret;
char ch;
int qin()
{
    ret=0;
    while(ch=getchar(),!isdigit(ch));
    while(ret=ret*10+ch-'0',ch=getchar(),isdigit(ch));
    return ret;
}

int n;
int a[1001];
int w[4][4];//x在j区间出现次数;
int sum[4];//x出现次数;

int min(int a,int b){return a<b?a:b;}

int main()
{
    freopen("sort3.in","r",stdin);
    freopen("sort3.out","w",stdout);
	n=qin();
	for(int i=1;i<=n;i++)
	{
		int x;
		x=qin();
		a[i]=x;
		sum[x]++;
	}
	
	for(int i=1;i<=sum[1];i++)	w[a[i]][1]++;
	for(int i=sum[1]+1;i<=sum[1]+sum[2];i++) w[a[i]][2]++;
	for(int i=sum[1]+sum[2]+1;i<=n;i++) w[a[i]][3]++;
	
	int S=w[1][2]+w[2][1]+w[1][3]+w[3][1]+w[2][3]+w[3][2];
	int A=min(w[1][2],w[2][1])+min(w[1][3],w[3][1])+min(w[2][3],w[3][2]);
	int B=((S-2*A)/3)*2;
	printf("%d\n",A+B);
    //while(1);
    fclose(stdin);
    fclose(stdout);
    return 0;
}