记录编号 |
134934 |
评测结果 |
AAAAAAAA |
题目名称 |
三值的排序 |
最终得分 |
100 |
用户昵称 |
乌龙猹 |
是否通过 |
通过 |
代码语言 |
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;
}