比赛 20111012 评测结果 AAAAAAAAAA
题目名称 空中楼阁 最终得分 100
用户昵称 donny 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2011-10-12 20:58:25
显示代码纯文本
#include <iostream>
#include <fstream>

using namespace std;

int i,j,k,l,n,m;
bool a[15][85][85];
int f[100];
int head,tail,w[1000000];
int p,t;

int main()
{
	ifstream fin("house.in");
	ofstream fout("house.out");
	
	fin>>n>>m>>t;
	
	for (i=1;i<=t;i++)
		for (j=1;j<=m;j++)
		{
			fin>>k>>l;
			a[i][k][l]=1;
			a[i][l][k]=1;
		}
	
	for (i=0;i<=n;i++)
		f[i]=9999999;
	
	head=1;
	tail=1;
	w[1]=1;
	f[1]=0;
	
	while (head<=tail)
	{
		for (i=1;i<=t;i++)
			for (j=0;j<=n;j++)
			{
				p=(f[w[head]]+i)%t;
				if (p==0)
					p=t;
				if (a[p][w[head]][j])
					if (f[w[head]]+i<f[j])
					{
						tail++;
						w[tail]=j;
						f[j]=f[w[head]]+i;
					}
			}
		head++;
	}
	
	if (f[0]==9999999)
		fout<<"Poor Z4!\n";
	else
		fout<<f[0]<<endl;
	
	fin.close();
	fout.close();
	
	return 0;
}