Pagini recente » Cod sursa (job #2792679) | Cod sursa (job #1610450) | Cod sursa (job #1806939) | Cod sursa (job #1827718) | Cod sursa (job #1094557)
#include<fstream>
#include<algorithm>
using namespace std;
int a[2005][2005],n,m,q,c[15],sol=(1<<29),x,y,z;
ifstream in("ubuntzei.in"); ofstream out("ubuntzei.out");
int main(){
//sol 50
in>>n>>m>>q;
for(int i=1;i<=q;++i) in>>c[i]; c[0]=1; c[q+1]=n;
for(int i=1;i<=n;++i) for(int j=1;j<=n;++j) a[i][j]=sol;
for(int i=1;i<=m;++i){
in>>x>>y>>z;
a[x][y]=a[y][x]=z;
}
for(int k=1;k<=n;++k)
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j)
a[i][j]=min(a[i][j],a[i][k]+a[k][j]);
do{
int acm=0;
for(int i=0;i<=q;++i) acm+=a[c[i]][c[i+1]];
sol=min(acm,sol);
}while(next_permutation(c+1,c+q));
out<<sol<<'\n';
}