记录编号 71910 评测结果 AAAAAAAAAA
题目名称 嵌套矩形 最终得分 100
用户昵称 Gravatarraywzy 是否通过 通过
代码语言 C++ 运行时间 0.039 s
提交时间 2013-10-13 16:16:11 内存使用 4.15 MiB
显示代码纯文本
#include<fstream>
#include<algorithm>
using namespace std;
ifstream fin("qiantao.in");
ofstream fout("qiantao.out");
int f[1001][1001];
int dis[1001];
int N;
int MAXN=0;
class woca
{
public:
	int x;
	int y;
}a[1001];
int dfs(int p)
{
	if(dis[p]>0) return dis[p];
	dis[p]=1;
	for(int i=1;i<=N;i++)
		if(f[p][i]==1) dis[p]=max(dfs(i)+1,dis[p]);
	return dis[p];
}//记忆化搜索
void printf_ANS(int u)
{
	fout<<u<<' ';
	for(int i=1;i<=N;i++)
		if(f[u][i]==1&&dis[u]==dis[i]+1)
		{
			printf_ANS(i);
			break;
		}
}//字典序
int main()
{
	fin>>N;
	int i,j,temp,to;
	for(i=1;i<=N;i++)
		fin>>a[i].x>>a[i].y;
	for(i=1;i<=N;i++)
		for(j=i+1;j<=N;j++)
		{
			if((a[i].x<a[j].x&&a[i].y<a[j].y)||(a[i].x<a[j].y&&a[i].y<a[j].x))
			{	f[i][j]=1; continue;}
			if((a[j].x<a[i].x&&a[j].y<a[i].y)||(a[j].x<a[i].y&&a[j].y<a[i].x))
			{   f[j][i]=1; continue;}
		}//建图
	for(i=1;i<=N;i++)
	{
		temp=dfs(i);
		if(temp>MAXN)
		{
			MAXN=temp;
			to=i;
		}
	}
	fout<<MAXN<<endl;
	printf_ANS(to);
	fout<<endl;
	return 0;
}