#include<bits/stdc++.h>
using namespace std;
main()
{
long n,m,cs=1;
while(cin>>n>>m)
{
long i,j,k,a,b,wt,mp[100][100];
string name[110];
memset(mp,50, sizeof(mp));
if(n==0&&m==0)
{
break;
}
for(i=1;i<=n;i++)
{
cin>>name[i];
}
for(i=1;i<=m;i++)
{
cin>>a>>b>>wt;
mp[a][b]=min(mp[a][b],wt);
mp[b][a]=min(mp[b][a],wt);
}
for(k=1;k<=n;k++)
{
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
mp[i][j]=min(mp[i][j],mp[i][k]+mp[k][j]);
}
}
}
long sum=0,mn=1000000000,indx=0;
for(i=1;i<=n;i++)
{
sum=0;
for(j=1;j<=n;j++)
{
if(i!=j)
{
sum+=mp[i][j];
}
}
if(sum<mn)
{
mn=sum;
indx=i;
}
}
printf("Case #%ld : ",cs++);
cout<<name[indx]<<endl;
}
}
using namespace std;
main()
{
long n,m,cs=1;
while(cin>>n>>m)
{
long i,j,k,a,b,wt,mp[100][100];
string name[110];
memset(mp,50, sizeof(mp));
if(n==0&&m==0)
{
break;
}
for(i=1;i<=n;i++)
{
cin>>name[i];
}
for(i=1;i<=m;i++)
{
cin>>a>>b>>wt;
mp[a][b]=min(mp[a][b],wt);
mp[b][a]=min(mp[b][a],wt);
}
for(k=1;k<=n;k++)
{
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
mp[i][j]=min(mp[i][j],mp[i][k]+mp[k][j]);
}
}
}
long sum=0,mn=1000000000,indx=0;
for(i=1;i<=n;i++)
{
sum=0;
for(j=1;j<=n;j++)
{
if(i!=j)
{
sum+=mp[i][j];
}
}
if(sum<mn)
{
mn=sum;
indx=i;
}
}
printf("Case #%ld : ",cs++);
cout<<name[indx]<<endl;
}
}
কোন মন্তব্য নেই:
একটি মন্তব্য পোস্ট করুন