Cod sursa(job #631415)

Utilizator informatician28Andrei Dinu informatician28 Data 7 noiembrie 2011 22:53:30
Problema Ubuntzei Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include<fstream> 
using namespace std; 
ifstream in("ubuntzei.in"); 
ofstream out("ubuntzei.out");
const int PInfinit=1.e20;
int main() 
{int i,j, A[100][100],n,m,k,orasetrec, v[1000], c, suma=0;

in>>n>>m;
in>>orasetrec; for(i=1;i<=orasetrec;i++) 
        in>>v[i];

		
        for(i=1;i<=n;i++) 
		for(j=1;j<=n;j++) 
		if(i==j) A[i][j]=0; 
		else 
			A[i][j]=PInfinit; 
		
		while(in>>i>>j>>c) 
		 A[i][j]=A[j][i]=c; 
		
		
			
			for(k=1;k<=n;k++) 
	for(i=1;i<=n;i++) 
		for(j=1;j<=n;j++) 
			if(A[i][j]>A[i][k]+A[k][j]) 
				A[i][j]=A[i][k]+A[k][j]; 
			
				
			for(i=1;i<=orasetrec-1;i++) 
			suma+=A[v[i]][v[i+1]];
			
			suma+=A[1][v[1]]; 
        suma+=A[v[orasetrec]][n]; 		
	out<<suma;

 

}