public class Main {
public static void main(String agrs[]){
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
try{
String temp = in.readLine();
int TESTCASE = Integer.valueOf(temp);
for(int i=0; i<TESTCASE; i++){
temp = in.readLine();
StringTokenizer st = new StringTokenizer(temp);
int CITY = Integer.valueOf(st.nextToken());
int LOAD = Integer.valueOf(st.nextToken());
int Map[][] = new int[CITY][CITY];
for(int j=0; j<CITY; j++){
for(int k=0; k<CITY; k++)
Map[j][k] = 10000;
}
for(int j=0; j<LOAD; j++){
temp = in.readLine();
st = new StringTokenizer(temp);
int x = Integer.valueOf(st.nextToken());
int y = Integer.valueOf(st.nextToken());
int l = Integer.valueOf(st.nextToken());
Map[x][y] = l;
Map[y][x] = l;
}
boolean check[] = new boolean[CITY];
int dis[] = new int[CITY];
for(int j=0; j<CITY; j++){
check[j] = true;
dis[j] = 10000;
}
dis[0] = 0;
////////////////////////////////////////////////
//First Method /
//--------------------------------------------//
int indextmp=0,index=0;
int tmp;
while(check[CITY-1]){
int min = 10000;
for(int j=0; j<CITY; j++){
tmp = dis[index] + Map[index][j];
if(check[j]&&dis[j] > tmp){
dis[j] = tmp;
if(j==(CITY-1)){
check[j]=false;
break;
}
}
if(check[j]&&min > dis[j]){
min = dis[j];
indextmp=j;
}
}
check[index] = false;
index = indextmp;
}
System.out.println(dis[CITY-1]);
//--------------------------------------------//
////////////////////////////////////////////////
/*//////////////////////////////////////////////
//Second Method //
//--------------------------------------------//
int min,k=0;
for(i=0; i<CITY; i++){
min = 10000;
for(int j=0; j<CITY; j++){
if(check[j] && dis[j] < min){
k=j;
min = dis[j];
}
}
check[k] = false;
if(min==10000) break;
for(int j=0; j<CITY; j++){
if(dis[j] > dis[k] + Map[k][j]){
dis[j] = dis[k] + Map[k][j];
}
}
}
System.our.println(dis[CITY-1]);
//---------------------------------------------/
//////////////////////////////////////////////*/
}
}catch(Exception e){
System.out.println("Input Error");
}
}
}
13년 전
0개의 댓글이 있습니다.
정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면
온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야
합니다. 현재 문제를 푸셨습니다.
KimKyujae
운송문제..
자바로 짰는데요..자꾸 런타임오류가 뜨는데..잘모르겠네요
다른방법이 떠오르지도 않구요 ㅜㅜ 힌트좀 주세요..
메소드는..2가지 방법으로 해봤는데
둘다 답은 나오는데 제출하면 런타임이네요..방법자체가 틀린거같은데ㅜㅜ
도움좀 주세용 ㅜㅜ
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String agrs[]){
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
try{
String temp = in.readLine();
}
13년 전