1 solutions
-
0
C :
#include<stdio.h> #include<string.h> const int inf=1000000000; int n,g[10][10]; void floyd() { int i,j,k; for(k=0;k<n;k++) for(i=0;i<n;i++) for(j=0;j<n;j++) if(g[i][k]+g[k][j]<g[i][j]) g[i][j]=g[i][k]+g[k][j]; } int main() { int m,a,b,l,i,j; while(scanf("%d%d",&n,&m)!=EOF) { for(i=0;i<n;i++) for(j=0;j<n;j++) g[i][j]=inf; while(m--) { scanf("%d%d%d",&a,&b,&l); g[a-1][b-1]=g[b-1][a-1]=l; } floyd(); scanf("%d%d",&a,&b); if(g[a-1][b-1]==inf) puts("No path"); else printf("%d\n",g[a-1][b-1]); } return 0; }
C++ :
#include<stdio.h> #include<string.h> const int inf=1000000000; int n,g[10][10]; void floyd() { int i,j,k; for(k=0;k<n;k++) for(i=0;i<n;i++) for(j=0;j<n;j++) if(g[i][k]+g[k][j]<g[i][j]) g[i][j]=g[i][k]+g[k][j]; } int main() { int m,a,b,l,i,j; while(scanf("%d%d",&n,&m)!=EOF) { for(i=0;i<n;i++) for(j=0;j<n;j++) g[i][j]=inf; while(m--) { scanf("%d%d%d",&a,&b,&l); g[a-1][b-1]=g[b-1][a-1]=l; } floyd(); scanf("%d%d",&a,&b); if(g[a-1][b-1]==inf) puts("No path"); else printf("%d\n",g[a-1][b-1]); } return 0; }
Java :
import java.util.*; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int m,n,a,b,l,x,y,k,i,j; int[] [] diat=null; while(in.hasNext()) { n = in.nextInt(); m = in.nextInt(); diat = new int[n][n]; for(i=0;i<n;i++) { for(j=0;j<n;j++) { diat[i][j]=100; } } for(int h=0;h<m;h++) { a=in.nextInt(); b=in.nextInt(); l=in.nextInt(); diat[a-1][b-1]=l; diat[b-1][a-1]=l; } for(k=0;k<n;k++) { for(i=0;i<n;i++) { for(j=0;j<n;j++) { if(diat[i][j]>(diat[i][k]+diat[k][j])){ diat[i][j]=diat[i][k]+diat[k][j]; } } } } x=in.nextInt()-1; y=in.nextInt()-1; if(diat[x][y]!=100) System.out.println(diat[x][y]); else System.out.println("No path"); } } }
- 1
Information
- ID
- 608
- Time
- 1000ms
- Memory
- 32MiB
- Difficulty
- (None)
- Tags
- # Submissions
- 0
- Accepted
- 0
- Uploaded By