Un robot se afla in originea axei Ox si nu se poate misca decat de-a
    lungul acesteia, cu cate un metru la fiecare pas. Pe aceasta axa se
    afla o gaura undeva la o coordonata intreaga X cuprinsa intre -10000
    si 10000, diferita de 0. Dumneavoastra telecomandati acest robot si
    vreti sa-l trantiti in gaura. Carburantul robotului este insa limitat
    si el nu poate efectua decat 10*|X| miscari. Gasiti un algoritm care
    sa se conformeze acestei restrictii.
    
    Programul scris de dumneavoastra va trebui sa simuleze exact procesul
    de cautare a gaurii desfasurat de robot. Pentru mai multa claritate,
    sugeram un algoritm banal: Deplasam pe rand robotul in 1, -1, 2, -2,
    3, -3, ... Acest algoritm efectueaza insa O(|X|^2) mutari.
    
    Programul dumeavoastra va interactiona cu un modul "Robot" scris de
    Onor. Comisie, pe care il veti include in sursa proprie cu comenzile:
    
    uses Robot;             { In Pascal }
    sau
    #include "robot.h"       /* In C/C++ */
    
    Acest modul va furnizeaza urmatoarele proceduri:
    1. procedure Init;
       respectiv
       void Init(void)
    
       Trebuie apelata NEAPARAT inaintea oricarei altei proceduri din modul.
    
    2. procedure Left;
       respectiv
       void Left(void)
    
    3. procedure Right;
       respectiv
       void Right(void)
    
       Se apeleaza pentru a instiinta modulul ca doriti deplasarea
    robotului cu un pas spre stanga/dreapta. Modulul se va ingriji singur
    sa va omoare programul in momentul in care ati nimerit gaura sau ati
    depasit numarul permis de mutari.
    
    Insist pe cateva aspecte:
    A) Nu aveti nevoie de nici un fel de citire de date, nici de vreo
    tiparire pe ecran sau in fisier. Trebuie numai sa aveti grija sa
    apelati procedura Init;
    
    B) Nu stiti de la inceput *CATE* mutari aveti voie sa faceti la un
    test anume, intrucat nu cunoasteti nici locatia X a gaurii :)
    
    C) Pentru cei pasionati, sa stiti ca optinmul este de fapt 9*|X|
    mutari. Am fost darnic :)
    
    In incheiere, trimit un exemplu de modul al Comisiei (dar nu va
    osteniti sa-l fentati ca n-o sa mearga ;) )
    
    ------------
    unit Robot;
    interface
    
    procedure Init;
    procedure Left;
    procedure Right;
    
    
    implementation
    var Coord, NMoves, Hidden:Longint;
    
    procedure AlesBules(S:String);
    begin
      WriteLn(S);
      Halt;         { Halt rulz! }
    end;
    
    procedure Init;
    begin
      Coord:=0;
      NMoves:=0;
      Randomize;
      Hidden:=-10000+Random(20001);
      WriteLn('Pentru stirea dumneavoastra, gaura este la ',Hidden);
    end;
    
    procedure Check;
    begin
      Inc(NMoves);
      if NMoves>10*Abs(Hidden)
        then AlesBules('**** Robotul se f^itz^iie prea mult!');
      if Coord=Hidden
        then AlesBules('**** Ati nimerit gaura-a-a-a-a-a!');
    end;
    
    procedure Left;
    begin
      Dec(Coord);
      Check;
    end;
    
    procedure Right;
    begin
      Inc(Coord);
      Check;
    end;
    
    end.