Cod sursa(job #632298)

Utilizator informatician28Andrei Dinu informatician28 Data 10 noiembrie 2011 20:49:10
Problema Ubuntzei Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include<fstream> 
using namespace std; 
ifstream in("ubuntzei.in"); 
ofstream out("ubuntzei.out");
const int INF =0x3F3F3F3F;
const  int MAX_N=500;
int main()
{long int A[MAX_N][MAX_N], n,m,i,j,k, v[20], orasetrec;
long int 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]=INF; 
		
		while(in>>i>>j>>c) 
		 A[i][j]=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;
}