File tree Expand file tree Collapse file tree 2 files changed +70
-0
lines changed Expand file tree Collapse file tree 2 files changed +70
-0
lines changed Original file line number Diff line number Diff line change
1
+ class GfG {
2
+ public Queue <Integer > rev (Queue <Integer > q ){
3
+ //add code here.
4
+ //revHelperRecursive(q);
5
+ revHelperIterative (q );
6
+ return q ;
7
+ }
8
+ private void revHelperIterative (Queue <Integer > q ){
9
+ Stack <Integer > s =new Stack <Integer >();
10
+ while (!q .isEmpty ()){
11
+ s .push (q .poll ());
12
+ }
13
+ while (!s .empty ()){
14
+ q .offer (s .pop ());
15
+ }
16
+ }
17
+ private void revHelperRecursive (Queue <Integer > q ){
18
+ if (q .isEmpty ())return ;
19
+ int temp =q .poll ();
20
+ revHelperRecursive (q );
21
+ q .offer (temp );
22
+ }
23
+ }
Original file line number Diff line number Diff line change
1
+ using System ;
2
+ using System . Collections . Generic ;
3
+ using System . IO ;
4
+ class PetrolPump
5
+ {
6
+ public int petrolGiven ;
7
+ public int distanceToNext ;
8
+ public PetrolPump ( int PetrolGiven , int DistanceToNext )
9
+ {
10
+ this . petrolGiven = PetrolGiven ;
11
+ this . distanceToNext = DistanceToNext ;
12
+ }
13
+ }
14
+ class Solution {
15
+ static void Main ( String [ ] args ) {
16
+ /* Enter your code here. Read input from STDIN. Print output to STDOUT. Your class should be named Solution */
17
+ int n = int . Parse ( Console . ReadLine ( ) ) ;
18
+ PetrolPump [ ] q = new PetrolPump [ n ] ;
19
+ for ( int i = 0 ; i < n ; i ++ )
20
+ {
21
+ int [ ] info = Array . ConvertAll ( Console . ReadLine ( ) . Split ( ' ' ) , int . Parse ) ;
22
+ q [ i ] = new PetrolPump ( info [ 0 ] , info [ 1 ] ) ;
23
+ }
24
+ TruckTour ( q , n ) ;
25
+ }
26
+ private static void TruckTour ( PetrolPump [ ] q , int n )
27
+ {
28
+ int start = 0 , end = 1 ;
29
+ int curr_petrol = q [ start ] . petrolGiven - q [ start ] . distanceToNext ;
30
+ while ( curr_petrol < 0 || start != end )
31
+ {
32
+ while ( curr_petrol < 0 && start != end )
33
+ {
34
+ curr_petrol -= ( q [ start ] . petrolGiven - q [ start ] . distanceToNext ) ;
35
+ start = ( start + 1 ) % n ;
36
+ if ( start == 0 )
37
+ {
38
+ Console . WriteLine ( "Not Possible" ) ;
39
+ return ;
40
+ }
41
+ }
42
+ curr_petrol += q [ end ] . petrolGiven - q [ end ] . distanceToNext ;
43
+ end = ( end + 1 ) % n ;
44
+ }
45
+ Console . WriteLine ( start ) ;
46
+ }
47
+ }
You can’t perform that action at this time.
0 commit comments