Cercles (2) P39799


Statement
 

pdf   zip

Per resoldre aquest exercici us caldran les definicions i els procediments dels problemes P46254 i P84786.

Feu un procediment que llegeixi un punt:

    void llegeix(Punt& p);

el qual ve donat a l’entrada amb els dos reals @x@ i @y@ en aquest ordre.

Feu també un procediment que llegeixi un cercle:

    void llegeix(Cercle& c);

el qual ve donat a l’entrada amb els tres reals @x@, @y@, i @radi@ en aquest ordre.

Useu tot això per fer un programa que llegeixi un cercle @c@ i un punt inicial @p@, que vagi desplaçant @p@ segons s’indiqui a l’entrada, i que vagi indicant quan @p@ entra o surt de @c@. Suposeu que @p@ no es trobarà mai just a la frontera de @c@.

Entrada

L’entrada comença amb una línia amb el cercle @c@ (tres reals, l’últim estrictament positiu) i una línia amb el punt @p@ (dos reals). A continuació ve un natural nn seguit de nn línies, cadascuna amb un punt que indica el desplaçament següent de @p@.

Sortida

Cal indicar la situació inicial de @p@ respecte a @c@, així com els moments en què el punt entra o surt del cercle. Seguiu el format dels exemples.

Public test cases
  • Input

    0 0 4.5
    1 1
    5
    10 1
    0 0
    -10 -1
    0.5 0.5
    0 -20
    

    Output

    inicialment a dins
    al pas 1 ha sortit a fora
    al pas 3 ha entrat a dins
    al pas 5 ha sortit a fora
    
  • Input

    5 10 2.5
    2 2
    3
    -1 -1
    -1 -1
    -1 -1
    

    Output

    inicialment a fora
    
  • Information
    Author
    Salvador Roura
    Language
    Catalan
    Other languages
    English
    Official solutions
    C++
    User solutions
    C++