比赛 |
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]);
}