fork download
  1. class Program
  2. {
  3.  
  4. static int spawnPosition; // Where rabbit will spawn
  5. static int direction; // 1 for positive or -1 for negative
  6. int actualCurrentPos;
  7.  
  8. //We cannot use this function in our logic - this is just to print the steps
  9. int getRabbitActualPosAtTime(int t)
  10. {
  11. return spawnPosition + direction * t;
  12. }
  13.  
  14. //Function to check if rabbit is present on a position 'pos' at time 't'
  15. bool checkForRabbitAtTimeAndPosition(int t, int assumedRabbitPosition)
  16. {
  17. actualCurrentPos = getRabbitActualPosAtTime(t);
  18.  
  19. if (assumedRabbitPosition == actualCurrentPos)
  20. {
  21. return true;
  22. }
  23. return false;
  24. }
  25.  
  26.  
  27. //Main function
  28. static void Main(string[] args)
  29. {
  30. //Initializing spawn position and direction of rabbit
  31. //(update these values to change spawn and direction)
  32. spawnPosition = 50;
  33. direction = 1;
  34.  
  35. Program p = new();
  36. p.getDirection();
  37. }
  38.  
  39.  
  40. //This is our required function, It doesn't know the spawn and direction of rabbit.
  41. void getDirection()
  42. {
  43.  
  44. //Start from t=0
  45. int t = 0;
  46.  
  47. //position counter
  48. int assumedStartPosCounter = 0;
  49. int assumedRabbitPosition;
  50. int[] directions = {+1, -1};
  51. bool rabbitCaught = false;
  52.  
  53. //For expected start position = 0
  54. foreach (int direction in directions) {
  55. assumedRabbitPosition = (t*direction);
  56. Console.WriteLine($"time: {t}, actual position: {getRabbitActualPosAtTime(t)}, assumed position: {assumedRabbitPosition} where {{y, direction}} = {{{0}, {direction}}}");
  57. if (checkForRabbitAtTimeAndPosition(t, assumedRabbitPosition))
  58. {
  59. Console.WriteLine($"\n\nChecked position matched with Rabbit position with assumed starting position = {0} and assumed direction = {(direction == 1 ? "positive" : "negative")} at time t = {t} secs");
  60. rabbitCaught = true;
  61. return;
  62. }
  63. t++;
  64. }
  65.  
  66. assumedStartPosCounter++;
  67.  
  68. //For expected start positions (1, -1, 2, -2, 3, -3, ....)
  69. while (!rabbitCaught) {
  70. int[] startPositions = { assumedStartPosCounter, -1*assumedStartPosCounter };
  71. foreach (int pos in startPositions) {
  72. foreach (int direction in directions) {
  73. assumedRabbitPosition = pos + (t*direction);
  74. Console.WriteLine($"time: {t}, actual position: {getRabbitActualPosAtTime(t)}, assumed position: {assumedRabbitPosition} where {{y, direction}} = {{{pos}, {direction}}}");
  75. if (checkForRabbitAtTimeAndPosition(t, assumedRabbitPosition))
  76. {
  77. Console.WriteLine($"\n\nChecked position matched with Rabbit position with assumed starting position = {pos} and assumed direction = {(direction == 1 ? "positive" : "negative")} at time t = {t} secs");
  78. rabbitCaught = true;
  79. return;
  80. }
  81. t++;
  82. }
  83. }
  84. assumedStartPosCounter++;
  85. }
  86.  
  87. }
  88. }
Success #stdin #stdout 0.06s 30540KB
stdin
Standard input is empty
stdout
time: 0, actual position: 50, assumed position: 0 where {y, direction} =  {0, 1}
time: 1, actual position: 51, assumed position: -1 where {y, direction} =  {0, -1}
time: 2, actual position: 52, assumed position: 3 where {y, direction} =  {1, 1}
time: 3, actual position: 53, assumed position: -2 where {y, direction} =  {1, -1}
time: 4, actual position: 54, assumed position: 3 where {y, direction} =  {-1, 1}
time: 5, actual position: 55, assumed position: -6 where {y, direction} =  {-1, -1}
time: 6, actual position: 56, assumed position: 8 where {y, direction} =  {2, 1}
time: 7, actual position: 57, assumed position: -5 where {y, direction} =  {2, -1}
time: 8, actual position: 58, assumed position: 6 where {y, direction} =  {-2, 1}
time: 9, actual position: 59, assumed position: -11 where {y, direction} =  {-2, -1}
time: 10, actual position: 60, assumed position: 13 where {y, direction} =  {3, 1}
time: 11, actual position: 61, assumed position: -8 where {y, direction} =  {3, -1}
time: 12, actual position: 62, assumed position: 9 where {y, direction} =  {-3, 1}
time: 13, actual position: 63, assumed position: -16 where {y, direction} =  {-3, -1}
time: 14, actual position: 64, assumed position: 18 where {y, direction} =  {4, 1}
time: 15, actual position: 65, assumed position: -11 where {y, direction} =  {4, -1}
time: 16, actual position: 66, assumed position: 12 where {y, direction} =  {-4, 1}
time: 17, actual position: 67, assumed position: -21 where {y, direction} =  {-4, -1}
time: 18, actual position: 68, assumed position: 23 where {y, direction} =  {5, 1}
time: 19, actual position: 69, assumed position: -14 where {y, direction} =  {5, -1}
time: 20, actual position: 70, assumed position: 15 where {y, direction} =  {-5, 1}
time: 21, actual position: 71, assumed position: -26 where {y, direction} =  {-5, -1}
time: 22, actual position: 72, assumed position: 28 where {y, direction} =  {6, 1}
time: 23, actual position: 73, assumed position: -17 where {y, direction} =  {6, -1}
time: 24, actual position: 74, assumed position: 18 where {y, direction} =  {-6, 1}
time: 25, actual position: 75, assumed position: -31 where {y, direction} =  {-6, -1}
time: 26, actual position: 76, assumed position: 33 where {y, direction} =  {7, 1}
time: 27, actual position: 77, assumed position: -20 where {y, direction} =  {7, -1}
time: 28, actual position: 78, assumed position: 21 where {y, direction} =  {-7, 1}
time: 29, actual position: 79, assumed position: -36 where {y, direction} =  {-7, -1}
time: 30, actual position: 80, assumed position: 38 where {y, direction} =  {8, 1}
time: 31, actual position: 81, assumed position: -23 where {y, direction} =  {8, -1}
time: 32, actual position: 82, assumed position: 24 where {y, direction} =  {-8, 1}
time: 33, actual position: 83, assumed position: -41 where {y, direction} =  {-8, -1}
time: 34, actual position: 84, assumed position: 43 where {y, direction} =  {9, 1}
time: 35, actual position: 85, assumed position: -26 where {y, direction} =  {9, -1}
time: 36, actual position: 86, assumed position: 27 where {y, direction} =  {-9, 1}
time: 37, actual position: 87, assumed position: -46 where {y, direction} =  {-9, -1}
time: 38, actual position: 88, assumed position: 48 where {y, direction} =  {10, 1}
time: 39, actual position: 89, assumed position: -29 where {y, direction} =  {10, -1}
time: 40, actual position: 90, assumed position: 30 where {y, direction} =  {-10, 1}
time: 41, actual position: 91, assumed position: -51 where {y, direction} =  {-10, -1}
time: 42, actual position: 92, assumed position: 53 where {y, direction} =  {11, 1}
time: 43, actual position: 93, assumed position: -32 where {y, direction} =  {11, -1}
time: 44, actual position: 94, assumed position: 33 where {y, direction} =  {-11, 1}
time: 45, actual position: 95, assumed position: -56 where {y, direction} =  {-11, -1}
time: 46, actual position: 96, assumed position: 58 where {y, direction} =  {12, 1}
time: 47, actual position: 97, assumed position: -35 where {y, direction} =  {12, -1}
time: 48, actual position: 98, assumed position: 36 where {y, direction} =  {-12, 1}
time: 49, actual position: 99, assumed position: -61 where {y, direction} =  {-12, -1}
time: 50, actual position: 100, assumed position: 63 where {y, direction} =  {13, 1}
time: 51, actual position: 101, assumed position: -38 where {y, direction} =  {13, -1}
time: 52, actual position: 102, assumed position: 39 where {y, direction} =  {-13, 1}
time: 53, actual position: 103, assumed position: -66 where {y, direction} =  {-13, -1}
time: 54, actual position: 104, assumed position: 68 where {y, direction} =  {14, 1}
time: 55, actual position: 105, assumed position: -41 where {y, direction} =  {14, -1}
time: 56, actual position: 106, assumed position: 42 where {y, direction} =  {-14, 1}
time: 57, actual position: 107, assumed position: -71 where {y, direction} =  {-14, -1}
time: 58, actual position: 108, assumed position: 73 where {y, direction} =  {15, 1}
time: 59, actual position: 109, assumed position: -44 where {y, direction} =  {15, -1}
time: 60, actual position: 110, assumed position: 45 where {y, direction} =  {-15, 1}
time: 61, actual position: 111, assumed position: -76 where {y, direction} =  {-15, -1}
time: 62, actual position: 112, assumed position: 78 where {y, direction} =  {16, 1}
time: 63, actual position: 113, assumed position: -47 where {y, direction} =  {16, -1}
time: 64, actual position: 114, assumed position: 48 where {y, direction} =  {-16, 1}
time: 65, actual position: 115, assumed position: -81 where {y, direction} =  {-16, -1}
time: 66, actual position: 116, assumed position: 83 where {y, direction} =  {17, 1}
time: 67, actual position: 117, assumed position: -50 where {y, direction} =  {17, -1}
time: 68, actual position: 118, assumed position: 51 where {y, direction} =  {-17, 1}
time: 69, actual position: 119, assumed position: -86 where {y, direction} =  {-17, -1}
time: 70, actual position: 120, assumed position: 88 where {y, direction} =  {18, 1}
time: 71, actual position: 121, assumed position: -53 where {y, direction} =  {18, -1}
time: 72, actual position: 122, assumed position: 54 where {y, direction} =  {-18, 1}
time: 73, actual position: 123, assumed position: -91 where {y, direction} =  {-18, -1}
time: 74, actual position: 124, assumed position: 93 where {y, direction} =  {19, 1}
time: 75, actual position: 125, assumed position: -56 where {y, direction} =  {19, -1}
time: 76, actual position: 126, assumed position: 57 where {y, direction} =  {-19, 1}
time: 77, actual position: 127, assumed position: -96 where {y, direction} =  {-19, -1}
time: 78, actual position: 128, assumed position: 98 where {y, direction} =  {20, 1}
time: 79, actual position: 129, assumed position: -59 where {y, direction} =  {20, -1}
time: 80, actual position: 130, assumed position: 60 where {y, direction} =  {-20, 1}
time: 81, actual position: 131, assumed position: -101 where {y, direction} =  {-20, -1}
time: 82, actual position: 132, assumed position: 103 where {y, direction} =  {21, 1}
time: 83, actual position: 133, assumed position: -62 where {y, direction} =  {21, -1}
time: 84, actual position: 134, assumed position: 63 where {y, direction} =  {-21, 1}
time: 85, actual position: 135, assumed position: -106 where {y, direction} =  {-21, -1}
time: 86, actual position: 136, assumed position: 108 where {y, direction} =  {22, 1}
time: 87, actual position: 137, assumed position: -65 where {y, direction} =  {22, -1}
time: 88, actual position: 138, assumed position: 66 where {y, direction} =  {-22, 1}
time: 89, actual position: 139, assumed position: -111 where {y, direction} =  {-22, -1}
time: 90, actual position: 140, assumed position: 113 where {y, direction} =  {23, 1}
time: 91, actual position: 141, assumed position: -68 where {y, direction} =  {23, -1}
time: 92, actual position: 142, assumed position: 69 where {y, direction} =  {-23, 1}
time: 93, actual position: 143, assumed position: -116 where {y, direction} =  {-23, -1}
time: 94, actual position: 144, assumed position: 118 where {y, direction} =  {24, 1}
time: 95, actual position: 145, assumed position: -71 where {y, direction} =  {24, -1}
time: 96, actual position: 146, assumed position: 72 where {y, direction} =  {-24, 1}
time: 97, actual position: 147, assumed position: -121 where {y, direction} =  {-24, -1}
time: 98, actual position: 148, assumed position: 123 where {y, direction} =  {25, 1}
time: 99, actual position: 149, assumed position: -74 where {y, direction} =  {25, -1}
time: 100, actual position: 150, assumed position: 75 where {y, direction} =  {-25, 1}
time: 101, actual position: 151, assumed position: -126 where {y, direction} =  {-25, -1}
time: 102, actual position: 152, assumed position: 128 where {y, direction} =  {26, 1}
time: 103, actual position: 153, assumed position: -77 where {y, direction} =  {26, -1}
time: 104, actual position: 154, assumed position: 78 where {y, direction} =  {-26, 1}
time: 105, actual position: 155, assumed position: -131 where {y, direction} =  {-26, -1}
time: 106, actual position: 156, assumed position: 133 where {y, direction} =  {27, 1}
time: 107, actual position: 157, assumed position: -80 where {y, direction} =  {27, -1}
time: 108, actual position: 158, assumed position: 81 where {y, direction} =  {-27, 1}
time: 109, actual position: 159, assumed position: -136 where {y, direction} =  {-27, -1}
time: 110, actual position: 160, assumed position: 138 where {y, direction} =  {28, 1}
time: 111, actual position: 161, assumed position: -83 where {y, direction} =  {28, -1}
time: 112, actual position: 162, assumed position: 84 where {y, direction} =  {-28, 1}
time: 113, actual position: 163, assumed position: -141 where {y, direction} =  {-28, -1}
time: 114, actual position: 164, assumed position: 143 where {y, direction} =  {29, 1}
time: 115, actual position: 165, assumed position: -86 where {y, direction} =  {29, -1}
time: 116, actual position: 166, assumed position: 87 where {y, direction} =  {-29, 1}
time: 117, actual position: 167, assumed position: -146 where {y, direction} =  {-29, -1}
time: 118, actual position: 168, assumed position: 148 where {y, direction} =  {30, 1}
time: 119, actual position: 169, assumed position: -89 where {y, direction} =  {30, -1}
time: 120, actual position: 170, assumed position: 90 where {y, direction} =  {-30, 1}
time: 121, actual position: 171, assumed position: -151 where {y, direction} =  {-30, -1}
time: 122, actual position: 172, assumed position: 153 where {y, direction} =  {31, 1}
time: 123, actual position: 173, assumed position: -92 where {y, direction} =  {31, -1}
time: 124, actual position: 174, assumed position: 93 where {y, direction} =  {-31, 1}
time: 125, actual position: 175, assumed position: -156 where {y, direction} =  {-31, -1}
time: 126, actual position: 176, assumed position: 158 where {y, direction} =  {32, 1}
time: 127, actual position: 177, assumed position: -95 where {y, direction} =  {32, -1}
time: 128, actual position: 178, assumed position: 96 where {y, direction} =  {-32, 1}
time: 129, actual position: 179, assumed position: -161 where {y, direction} =  {-32, -1}
time: 130, actual position: 180, assumed position: 163 where {y, direction} =  {33, 1}
time: 131, actual position: 181, assumed position: -98 where {y, direction} =  {33, -1}
time: 132, actual position: 182, assumed position: 99 where {y, direction} =  {-33, 1}
time: 133, actual position: 183, assumed position: -166 where {y, direction} =  {-33, -1}
time: 134, actual position: 184, assumed position: 168 where {y, direction} =  {34, 1}
time: 135, actual position: 185, assumed position: -101 where {y, direction} =  {34, -1}
time: 136, actual position: 186, assumed position: 102 where {y, direction} =  {-34, 1}
time: 137, actual position: 187, assumed position: -171 where {y, direction} =  {-34, -1}
time: 138, actual position: 188, assumed position: 173 where {y, direction} =  {35, 1}
time: 139, actual position: 189, assumed position: -104 where {y, direction} =  {35, -1}
time: 140, actual position: 190, assumed position: 105 where {y, direction} =  {-35, 1}
time: 141, actual position: 191, assumed position: -176 where {y, direction} =  {-35, -1}
time: 142, actual position: 192, assumed position: 178 where {y, direction} =  {36, 1}
time: 143, actual position: 193, assumed position: -107 where {y, direction} =  {36, -1}
time: 144, actual position: 194, assumed position: 108 where {y, direction} =  {-36, 1}
time: 145, actual position: 195, assumed position: -181 where {y, direction} =  {-36, -1}
time: 146, actual position: 196, assumed position: 183 where {y, direction} =  {37, 1}
time: 147, actual position: 197, assumed position: -110 where {y, direction} =  {37, -1}
time: 148, actual position: 198, assumed position: 111 where {y, direction} =  {-37, 1}
time: 149, actual position: 199, assumed position: -186 where {y, direction} =  {-37, -1}
time: 150, actual position: 200, assumed position: 188 where {y, direction} =  {38, 1}
time: 151, actual position: 201, assumed position: -113 where {y, direction} =  {38, -1}
time: 152, actual position: 202, assumed position: 114 where {y, direction} =  {-38, 1}
time: 153, actual position: 203, assumed position: -191 where {y, direction} =  {-38, -1}
time: 154, actual position: 204, assumed position: 193 where {y, direction} =  {39, 1}
time: 155, actual position: 205, assumed position: -116 where {y, direction} =  {39, -1}
time: 156, actual position: 206, assumed position: 117 where {y, direction} =  {-39, 1}
time: 157, actual position: 207, assumed position: -196 where {y, direction} =  {-39, -1}
time: 158, actual position: 208, assumed position: 198 where {y, direction} =  {40, 1}
time: 159, actual position: 209, assumed position: -119 where {y, direction} =  {40, -1}
time: 160, actual position: 210, assumed position: 120 where {y, direction} =  {-40, 1}
time: 161, actual position: 211, assumed position: -201 where {y, direction} =  {-40, -1}
time: 162, actual position: 212, assumed position: 203 where {y, direction} =  {41, 1}
time: 163, actual position: 213, assumed position: -122 where {y, direction} =  {41, -1}
time: 164, actual position: 214, assumed position: 123 where {y, direction} =  {-41, 1}
time: 165, actual position: 215, assumed position: -206 where {y, direction} =  {-41, -1}
time: 166, actual position: 216, assumed position: 208 where {y, direction} =  {42, 1}
time: 167, actual position: 217, assumed position: -125 where {y, direction} =  {42, -1}
time: 168, actual position: 218, assumed position: 126 where {y, direction} =  {-42, 1}
time: 169, actual position: 219, assumed position: -211 where {y, direction} =  {-42, -1}
time: 170, actual position: 220, assumed position: 213 where {y, direction} =  {43, 1}
time: 171, actual position: 221, assumed position: -128 where {y, direction} =  {43, -1}
time: 172, actual position: 222, assumed position: 129 where {y, direction} =  {-43, 1}
time: 173, actual position: 223, assumed position: -216 where {y, direction} =  {-43, -1}
time: 174, actual position: 224, assumed position: 218 where {y, direction} =  {44, 1}
time: 175, actual position: 225, assumed position: -131 where {y, direction} =  {44, -1}
time: 176, actual position: 226, assumed position: 132 where {y, direction} =  {-44, 1}
time: 177, actual position: 227, assumed position: -221 where {y, direction} =  {-44, -1}
time: 178, actual position: 228, assumed position: 223 where {y, direction} =  {45, 1}
time: 179, actual position: 229, assumed position: -134 where {y, direction} =  {45, -1}
time: 180, actual position: 230, assumed position: 135 where {y, direction} =  {-45, 1}
time: 181, actual position: 231, assumed position: -226 where {y, direction} =  {-45, -1}
time: 182, actual position: 232, assumed position: 228 where {y, direction} =  {46, 1}
time: 183, actual position: 233, assumed position: -137 where {y, direction} =  {46, -1}
time: 184, actual position: 234, assumed position: 138 where {y, direction} =  {-46, 1}
time: 185, actual position: 235, assumed position: -231 where {y, direction} =  {-46, -1}
time: 186, actual position: 236, assumed position: 233 where {y, direction} =  {47, 1}
time: 187, actual position: 237, assumed position: -140 where {y, direction} =  {47, -1}
time: 188, actual position: 238, assumed position: 141 where {y, direction} =  {-47, 1}
time: 189, actual position: 239, assumed position: -236 where {y, direction} =  {-47, -1}
time: 190, actual position: 240, assumed position: 238 where {y, direction} =  {48, 1}
time: 191, actual position: 241, assumed position: -143 where {y, direction} =  {48, -1}
time: 192, actual position: 242, assumed position: 144 where {y, direction} =  {-48, 1}
time: 193, actual position: 243, assumed position: -241 where {y, direction} =  {-48, -1}
time: 194, actual position: 244, assumed position: 243 where {y, direction} =  {49, 1}
time: 195, actual position: 245, assumed position: -146 where {y, direction} =  {49, -1}
time: 196, actual position: 246, assumed position: 147 where {y, direction} =  {-49, 1}
time: 197, actual position: 247, assumed position: -246 where {y, direction} =  {-49, -1}
time: 198, actual position: 248, assumed position: 248 where {y, direction} =  {50, 1}


Checked position matched with Rabbit position with assumed starting position = 50 and assumed direction = positive at time t = 198 secs