比赛 刷题ing 评测结果 AAAAAAAAAA
题目名称 渡轮问题 最终得分 100
用户昵称 梦那边的美好ET 运行时间 0.186 s
代码语言 C++ 内存使用 0.43 MiB
提交时间 2018-05-24 21:28:07
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int n,a[10001],b[10001],c[10001];
int main()
{
	freopen("maxxl.in","r",stdin);
	freopen("maxxl.out","w",stdout);
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
		b[i]=1;
		c[i]=i;
	}
	for(int i=n-1;i>=1;i--)
	{
	    int m1=i;
		for(int j=i+1;j<=n;j++)
		{
		    if(a[i]<=a[j]&&b[i]<=b[j])
			{
			    b[i]=b[j]+1;
				m1=j;
			}
		}
		c[i]=m1;
	}
	int ma=-1,m1;
	for(int i=1;i<=n;i++)
	{
	    if(b[i]>ma)
		{
		    ma=b[i];
			m1=i;
		}
	}
	cout<<ma<<endl;
	while(c[m1]!=m1)
	{
	    cout<<a[m1]<<" ";
		m1=c[m1];
	}
	cout<<a[m1];
	return 0;
}