LardaX

TruckTour

Jan 22nd, 2017
193
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.46 KB | None | 0 0
  1. import java.util.ArrayDeque;
  2. import java.util.ArrayList;
  3. import java.util.Deque;
  4. import java.util.Scanner;
  5.  
  6. public class TruckTour {
  7.     public static void main(String[] args) {
  8.         Scanner scanner = new Scanner(System.in);
  9.         int pumpCount = Integer.parseInt(scanner.nextLine());
  10.  
  11.         ArrayList<Pump> pumps = new ArrayList<>();
  12.  
  13.         for (int i = 0; i < pumpCount; i++) {
  14.             String[] pumpStationInput = scanner.nextLine().split("\\s+");
  15.  
  16.             long petrol = Long.parseLong(pumpStationInput[0]);
  17.             long distance = Long.parseLong(pumpStationInput[1]);
  18.  
  19.             Pump pump = new Pump(petrol, distance);
  20.             pumps.add(pump);
  21.         }
  22.  
  23.         Deque<Pump> stationsQueue = new ArrayDeque<>();
  24.  
  25.         for (Pump pump : pumps) {
  26.             stationsQueue.add(pump);
  27.         }
  28.  
  29.         int index = 0;
  30.  
  31.         for (int i = 0; i < pumpCount; i++) {
  32.  
  33.             long petrol = 0;
  34.  
  35.             for (Pump pump : stationsQueue) {            // other option to iterate over the collection is to call
  36.                 petrol += pump.getPetrolDifference();    // stationsQueue.toArray and to iterate over the new array
  37.  
  38.                 if (petrol < 0){
  39.                     break;
  40.                 }
  41.             }
  42.  
  43.             if (petrol >= 0) {
  44.                 index = i;
  45.                 break;
  46.             }
  47.  
  48.             stationsQueue.add(stationsQueue.remove());
  49.         }
  50.  
  51.         System.out.println(index);
  52.     }
  53.  
  54.     public static class Pump{
  55.         long petrol;
  56.  
  57.         long distanceToNextPump;
  58.  
  59.         long petrolDifference;
  60.  
  61.         public Pump(long petrol, long distanceToNextPump) {
  62.             this.petrol = petrol;
  63.             this.distanceToNextPump = distanceToNextPump;
  64.             this.petrolDifference = petrol - distanceToNextPump;
  65.         }
  66.  
  67.         public long getPetrol() {
  68.             return petrol;
  69.         }
  70.  
  71.         public void setPetrol(long petrol) {
  72.             this.petrol = petrol;
  73.         }
  74.  
  75.         public long getDistanceToNextPump() {
  76.             return distanceToNextPump;
  77.         }
  78.  
  79.         public void setDistanceToNextPump(long distanceToNextPump) {
  80.             this.distanceToNextPump = distanceToNextPump;
  81.         }
  82.  
  83.         public long getPetrolDifference() {
  84.             return petrolDifference;
  85.         }
  86.  
  87.         public void setPetrolDifference(long petrolDifference) {
  88.             this.petrolDifference = petrolDifference;
  89.         }
  90.     }
  91. }
Advertisement
Add Comment
Please, Sign In to add comment