比赛 HAOI2009 模拟试题3 评测结果 AAAAA
题目名称 医院设置 最终得分 100
用户昵称 Czb。 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2012-06-28 16:01:12
显示代码纯文本
#include<stdio.h>
#include<string.h>
 
int n,tmp,ans,a[101],f[101][101];
 
int main()
{
    freopen("hospital.in","r",stdin);
    freopen("hospital.out","w",stdout);
    int i,j,k,x,y;
    scanf("%d",&n);
    memset(f,60,sizeof(f));
    for(i=1;i<=n;i++)
    {
        scanf("%d%d%d",&a[i],&x,&y);
        f[i][x]=f[i][y]=f[x][i]=f[y][i]=1;
        f[i][i]=0;
    }
    for(k=1;k<=n;k++)
    {
        for(i=1;i<=n;i++)
        {
            for(j=1;j<=n;j++)
            {
                if(f[i][k]+f[k][j]<f[i][j])
                {
                    f[i][j]=f[i][k]+f[k][j];
                }
            }
        }
    }
    ans=0x7FFFFFFF;
    for(i=1;i<=n;i++)
    {
        tmp=0;
        for(j=1;j<=n;j++)
        {
            tmp+=f[i][j]*a[j];
        }
        if(tmp<ans)ans=tmp;
    }
    printf("%d\n",ans);
    return 0;
}