比赛 noip2016普及练习1 评测结果 AAWWWEEWA
题目名称 回家 最终得分 33
用户昵称 @@@ 运行时间 0.152 s
代码语言 C++ 内存使用 0.32 MiB
提交时间 2016-11-03 20:22:28
显示代码纯文本
#include <fstream>
//#define inf 0xffffff
#define big(a,b) a>b?a:b
#define small(a,b) a<b?a:b
using namespace std;
ifstream cin("comehome.in");
ofstream cout("comehome.out");
int inf = 999999;
int p,e[27+26+5][27+26+5],ans = inf+8,ansi;
char t1,t2;
int main()
{
	cin >> p;
	int i,j,k;
	for(i = 0;i <= 53;i++)
		for(j = 0;j <= 53;j++)
		{
			if(i == j)
				e[i][i] = 0;
			else
				e[i][j] = inf;
		}
	for(i = 1;i <= p;i++)
	{
		int t3;
		
		cin >> t1 >> t2 >> t3;
		e[t1 -'A'+1][t2 -'A'+1] = t3;
		e[t2 -'A'+1][t1 -'A'+1] = t3;
	}
	for(k=1;k<=53;k++)
		for(i=1;i<=53;i++)
			for(j=1;j<=53;j++)
				if(e[i][k]+e[k][j]<e[i][j])
				{
					e[i][j]=e[i][k]+e[k][j];
				}
	/*/===================================
	for(i = 1;i <= 53;i++)
	{
		for(j = 1;j <= 53;j++)
		{
			if(e[i][j] == inf)
				cout << 'x' << ' ';
			else
				cout << e[i][j] << ' ';
		}
		cout << endl;
	}
	/===================================*/
	for(i = 1;i <= 25;i++)
	{
		if(e[26][i] < ans)
		{
			ansi = i;
			ans = e[26][i];
		}
	}
	cout << char(ansi+'A'-1) << ' ' << ans << endl;
    cin.close();
	cout.close();
    return 0;
}