Circular tour Java
- Get link
- X
- Other Apps
PROGRAM TO FIND THE CIRCULAR TOUR THAT VISITS ALL PETROL PUMPS
public class Petrol { // A petrol pump has petrol and distance to next petrol pump static class petrolPump { int petrol; int distance; // constructor public petrolPump(int petrol, int distance) { this.petrol = petrol; this.distance = distance; } } // The function returns starting point if there is a possible solution, // otherwise returns -1 static int printTour(petrolPump arr[], int n) { int start = 0; int end = 1; int curr_petrol = arr[start].petrol - arr[start].distance; // If current amount of petrol in truck becomes less than 0, then // remove the starting petrol pump from tour while(end != start || curr_petrol < 0) { // If current amount of petrol in truck becomes less than 0, then // remove the starting petrol pump from tour while(curr_petrol < 0 && start != end) { // Remove starting petrol pump. Change start curr_petrol -= arr[start].petrol - arr[start].distance; start = (start + 1) % n; // If 0 is being considered as start again, then there is no // possible solution if(start == 0) return -1; } // Add a petrol pump to current tour curr_petrol += arr[end].petrol - arr[end].distance; end = (end + 1)%n; } // Return starting point return start; } // Driver program to test above functions public static void main(String[] args) { petrolPump[] arr = {new petrolPump(6, 4), new petrolPump(3, 6), new petrolPump(7, 3)}; int start = printTour(arr, arr.length); System.out.println(start == -1 ? "No Solution" : "Start = " + start); } }
OUTPUT:
start = 2
- Get link
- X
- Other Apps
Comments
Post a Comment