jinsub8682   3년 전

import java.io.FileInputStream;
import java.util.Scanner;

public class Bae1005_2 {
static int N ; 
static int W ; 
static int D[] ; 
static boolean line[][] ; 
static int dp [ ];
public static void main(String[] args) throws Exception{

Scanner sc = new Scanner(new FileInputStream("input.txt")); 
//Scanner sc = new Scanner(System.in) ; 
int T =sc.nextInt() ; 

for(int t = 0 ; t < T ; t++){

N = sc.nextInt() ; 
W = sc.nextInt() ; 

D = new int [N+1]  ; 
line = new boolean [N+1][N+1] ;
dp = new int [N+1] ;
for(int x = 1 ; x <= N ; x++) D[x] = sc.nextInt() ; 
dp [1] = D[1] ; 
for(int x = 0  ;  x < W ;x++) {
int s = sc.nextInt() ; 
int e = sc.nextInt() ;
line[s][e] = true ; 
}
int target = sc.nextInt() ; 

for(int i = 2 ; i <=N ; i++){

dp[i] = cal(i);

}
System.out.println(dp[target]);

}


}
private static int cal(int point) {

int max = 0 ; 

for(int x =1 ; x <= N ; x++){

if(line[x][point] && x!=point){

if(dp[x] > max) max = dp[x] ;  
}
}


return max  + D[point] ;
}
}

djm03178   3년 전

카테고리를 질문으로 설정하면 문제 번호를 선택하는 칸도 따로 있고, 코드를 보기 좋게 올리는 칸도 따로 있습니다.

djm03178   3년 전

그리고 https://www.acmicpc.net/blog/v... 를 한 번 읽어보세요.

댓글을 작성하려면 로그인해야 합니다.