比赛 20111012 评测结果 AAWWAWAWAW
题目名称 空中楼阁 最终得分 50
用户昵称 belong.zmx 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2011-10-12 20:31:36
显示代码纯文本
#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <cstring>

using namespace std;

struct Time_Table
{
	int l[81],tot;
	int way[20001],fo[20001];
};

int i,j,n,m,tim,t,x,y,f[81];
Time_Table p[11];
bool tt[81],flag;

void Flood_Fill(int tim)
{
	int i,j;
	for (i=1;i<=n;i++)
		if (f[i]!=-1)
		{
			j=p[tim%t].l[i];
			while (j!=0)
			{
				if (f[p[tim%t].way[j]]==-1 && !tt[i])
				{
					f[p[tim%t].way[j]]=tim;tt[p[tim%t].way[j]]=true;
					flag=true;
				}
				j=p[tim%t].fo[j];
			}
		}
}

int main()
{
	freopen("house.in","r",stdin);
	freopen("house.out","w",stdout);
	scanf("%d %d %d\n",&n,&m,&t);
	for (i=1;i<=t;i++)
		for (j=1;j<=m;j++)
		{
			scanf("%d %d\n",&x,&y);
			p[i%t].tot++;p[i%t].fo[p[i%t].tot]=p[i%t].l[x];p[i%t].way[p[i%t].tot]=y;p[i%t].l[x]=p[i%t].tot;
			p[i%t].tot++;p[i%t].fo[p[i%t].tot]=p[i%t].l[y];p[i%t].way[p[i%t].tot]=x;p[i%t].l[y]=p[i%t].tot;
		}
	for (i=0;i<=n;i++) f[i]=-1;
	tim=1;f[1]=0;
	do
	{
		flag=false;
		Flood_Fill(tim);
		memset(tt,false,sizeof(tt));
		tim++;
	}while(f[0]==-1 && flag);
	if (f[0]==-1) printf("Poor Z4!\n");
	else printf("%d\n",f[0]);
}