记录编号 |
31829 |
评测结果 |
AAAAAAAAAAA |
题目名称 |
[USACO Feb08] 麻烦的聚餐 |
最终得分 |
100 |
用户昵称 |
Yeehok |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.014 s |
提交时间 |
2011-11-04 08:59:37 |
内存使用 |
0.32 MiB |
显示代码纯文本
#include<cstdio>
using namespace std;
short lis[30001]={0};
int ansup[4]={0},n,ansdown[4]={0};
int main(void)
{
freopen("egroup.in","r",stdin);
freopen("egroup.out","w",stdout);
scanf("%d",&n);
int i,j;
for(i=0;i<n;i++)
{
scanf("%d\n",&lis[i]);
}
int tmp;
for(i=0;i<n;i++)
{
tmp=0;
for(j=1;j<=lis[i];j++)
if(ansup[j]>tmp)
tmp=ansup[j];
tmp++;
ansup[lis[i]]=tmp;
}
for(i=n-1;i>=0;i--)
{
tmp=0;
for(j=1;j<=lis[i];j++)
if (ansdown[j]>tmp)
tmp=ansdown[j];
tmp++;
ansdown[lis[i]]=tmp;
}
int up=0,down=0;
for(i=1;i<=3;i++)
{
if(ansup[i]>up)
up=ansup[i];
if(ansdown[i]>down)
down=ansdown[i];
}
printf("%d\n",n-(up>down ? up:down));
fclose(stdin);
fclose(stdout);
return (0);
}