比赛 假期找点事儿做题吧 评测结果 AAAAWWWWWW
题目名称 上升序列 最终得分 40
用户昵称 Regnig Etalsnart 运行时间 1.649 s
代码语言 C++ 内存使用 0.28 MiB
提交时间 2017-06-07 21:19:37
显示代码纯文本
#include<cstdio>
#define syy myson
using namespace std;
int n,m,a[10010][2],b[10010],i,j;
int Main()
{
	freopen("lis.in","r",stdin);freopen("lis.out","w",stdout);
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		scanf("%d",&a[i][1]);
		a[i][2]=1;
	}
	for(i=n-1;i>=1;i--)
	{
		int l=0;
		for(j=i+1;j<=n;j++)
		  if((a[j][1]>=a[i][1])&&(a[j][2]>l))
			l=a[j][2];
		if(l>0)
		{
			a[i][2]=l+1;
			b[l+1]=1;
		}
	}
	b[1]=1;
	scanf("%d",&m);
	for(i=1;i<=m;i++)
	{
		int num;
		scanf("%d",&num);
		if(!b[num])
		{
			printf("Impossible\n");
			continue;
		}
		if(num==1)
		{
			printf("%d\n",a[1][1]);
			continue;
		}
		else
		{
			int last=0;
			for(j=1;j<=n;j++)if(a[j][1]>last&&a[j][2]>=num)
			{
				last=a[j][1];
				printf("%d ",a[j][1]);
				num--;
				if(!num)break;
			}
			printf("\n");
		}
	}
	return 0;
}
int main(){;};
int syy=Main();