比赛 20111102 评测结果 ATAAAAAAAAA
题目名称 麻烦的聚餐 最终得分 90
用户昵称 Cloud 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2011-11-02 21:10:08
显示代码纯文本
#include<fstream>
using namespace std;      
int main(void)      
{         
    ifstream fin("egroup.in");      
    ofstream fout("egroup.out");  
	int a[30001][3]={0},b[30001][3]={0},l,n;
	int x=0,y=0;  
	int j,k;
    fin>>n;
    for(j=0;j<n;j++) 
	{
		fin>>a[j][0];
		b[j][0]=a[j][0];
	}
	for(k=0;k<n;k++) 
		a[k][1]=-1;
	for(k=1;k<n;k++)   
		for(l=k-1;l>=0;l--)   
			if((a[k][0]>=a[l][0])&&(a[l][2]>=a[k][2]))
			{
				a[k][1]=l;
				a[k][2]=a[l][2]+1;
			}
	for(k=0;k<n;k++) 
		if(a[k][2]>x) 
			x=a[k][2];
	for(k=0;k<n;k++) 
		b[k][1]=-1;
	for(k=1;k<n;k++)   
		for(l=k-1;l>=0;l--)   
			if((b[k][0]<=b[l][0])&&(b[l][2]>=b[k][2])) 
			{
				b[k][1]=l; 
				b[k][2]=b[l][2]+1;
			}
	for(k=0;k<n;k++)
		if(b[k][2]>y) 
			y=b[k][2];
	x++;
	y++;
	if(x<y)x=y;
	n-=x;
	fout<<n;
	fin.close();
	fout.close();
    return 0;     
}