Advertisement
vvsvvs

Untitled

May 17th, 2022
570
136 days
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. namespace Truck_Tour
  6. {
  7.     class Pump
  8.     {
  9.         public Pump()
  10.         {
  11.  
  12.         }// Pump()
  13.  
  14.         public Pump(int newNum, int newFuel, int newDistanceToNextPump)
  15.         {
  16.             this.Num = newNum;
  17.             this.Fuel = newFuel;
  18.             this.DistanceToNextPump = newDistanceToNextPump;
  19.         }
  20.  
  21.         public int Num { get; set; }
  22.         public int Fuel { get; set; }
  23.         public int DistanceToNextPump { get; set; }
  24.     }// class Pump
  25.  
  26.     class TruckTour
  27.     {
  28.         static void Main(string[] args)
  29.         {
  30.             Queue<Pump> pumps = new Queue<Pump>();
  31.  
  32.             int n = int.Parse(Console.ReadLine());
  33.  
  34.             for (int i = 0; i < n; i++)
  35.             {
  36.                 int[] input = Console.ReadLine().Split(' ', StringSplitOptions.RemoveEmptyEntries).Select(int.Parse).ToArray();
  37.  
  38.                 int fuel = input[0];
  39.                 int distance = input[1];
  40.  
  41.                 Pump pump = new Pump(i, fuel, distance);
  42.                 pumps.Enqueue(pump);
  43.             }
  44.  
  45.             int countOfPump = 0;
  46.             int currentStartIndex = -1;
  47.             int currentFuel = 0;
  48.             int noPumps = 0;
  49.  
  50.             while ((countOfPump < n) && (noPumps < 2 * n))
  51.             {
  52.                 Pump pump = pumps.Dequeue();
  53.                 pumps.Enqueue(pump);
  54.                 noPumps++;
  55.  
  56.                 currentFuel += pump.Fuel;
  57.  
  58.                 if (currentFuel >= pump.DistanceToNextPump)
  59.                 {
  60.                     countOfPump++;
  61.                     currentFuel -= pump.DistanceToNextPump;
  62.                     if (currentStartIndex.Equals(-1))
  63.                     {
  64.                         currentStartIndex = pump.Num;
  65.                     }                  
  66.                 }
  67.                 else
  68.                 {
  69.                     countOfPump = 0;
  70.                     currentFuel = 0;
  71.                     currentStartIndex = -1;
  72.                 }
  73.             }
  74.             if (noPumps < 2 * n)
  75.             {
  76.                 Console.WriteLine(currentStartIndex);
  77.             }
  78.             else
  79.             {
  80.                 Console.WriteLine("No");
  81.             }
  82.            
  83.         }
  84.     }
  85. }
Advertisement
RAW Paste Data Copied
Advertisement