Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static int calculateTime(int energy, int destination, int[][] options, int[][] mem, int res){
- if(destination == 0) return res;
- if(mem[destination][(int)energy] != -1) {
- // System.out.println(mem[destination][(int)energy]);
- return mem[destination][(int)energy];
- }
- int minTime = 999999;
- for(int i = 0; i < options.length; i++){
- if((energy - options[i][1]) >= 0) {
- minTime = Math.min(minTime, calculateTime(energy - options[i][1], destination - 1, options, mem, res + options[i][0]));
- }
- }
- mem[destination][(int) energy] = minTime;
- return minTime;
- }
- public static int calculateTime(int energy, int destination, int[][] options, int[][] mem){
- if(destination == 0) return 0;
- if(mem[destination][(int)energy] != -1) {
- // System.out.println(mem[destination][(int)energy]);
- return mem[destination][(int)energy];
- }
- int minTime = 999999;
- for(int i = 0; i < options.length; i++){
- if((energy - options[i][1]) >= 0) {
- minTime = Math.min(minTime, options[i][0] + calculateTime(energy - options[i][1], destination - 1, options, mem));
- }
- }
- mem[destination][(int) energy] = minTime;
- return minTime;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement