Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package Opdracht3;
- import java.io.InputStream;
- import java.util.*;
- class Solution{
- public Solution(){ }
- public static String run(InputStream in){
- Scanner sc = new Scanner(in);
- int n = sc.nextInt();
- int constantCost = sc.nextInt();
- if(n == 0){
- return "0";
- }
- if(n == 1){
- return Integer.toString(constantCost);
- }
- int[][] risk = new int[n+1][n+1]; // double array for all the risks
- while(sc.hasNextInt()){
- int from = sc.nextInt();
- int to = sc.nextInt();
- int cost = sc.nextInt();
- risk[from][to] = cost;
- }
- int[] list = new int[n+1];
- list[0] = 0;
- list[1] = constantCost;
- for(int i=2; i<=n; i++){
- int minimal = Integer.MAX_VALUE;
- for(int p=1; p<=i-1; p++){
- int newcost = risk[p][i] + list[p-1] + constantCost;
- int previous = list[i-1] + constantCost;
- int min;
- if(newcost < previous)
- min = newcost;
- else{
- min = previous;
- }
- if(min < minimal)
- minimal = min;
- }
- list[i] = minimal;
- }
- String result = Integer.toString(list[n]);
- return result;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement