Espiral P37620


Statement
 

pdf   zip

thehtml

Haz un programa que escriba un texto repetidamente en espiral, tal y como se muestra en los ejemplos. La espiral empieza siempre en la casilla superior izquierda, nunca se toca consigo misma, y acaba cuando el siguiente carácter debería tocar la propia espiral.

Entrada

Una línea con tres números 3≤ f,c≤ 40 (filas y columnas) y 0≤ s≤ 1 (sentido de la espiral: 0 sentido de las agujas del reloj, 1 sentido contrario a las agujas del reloj), seguida de otra línea con el texto a escribir. Se te garantiza que el texto no tendrá espacios o puntos.

Salida

Exactamente f líneas de c caracteres cada una con la espiral. Usa caracteres punto (.) para los caracteres que no corresponden a la espiral.

Puntuación

  • TestA:  ‍ Entradas donde f=3 y s=0, como el Ejemplo ‍1.  ‍30 Puntos ‍
  • TestB:  ‍ Entradas donde f=c y s=0, como el Ejemplo ‍2.  ‍25 Puntos ‍
  • TestC:  ‍ Entradas donde s=0, como el Ejemplo ‍3.  ‍25 Puntos ‍
  • TestD:  ‍ Entradas de todo tipo, como el Ejemplo ‍4.  ‍20 Puntos ‍
Public test cases
  • Input

    3 7 0
    OIE2013
    

    Output

    OIE2013
    ......O
    O3102EI
    
  • Input

    12 12 0
    Hola
    

    Output

    HolaHolaHola
    ...........H
    laHolaHola.o
    o........H.l
    H.laHola.o.a
    a.o....H.l.H
    l.H.l..o.a.o
    o.a.oHal.H.l
    H.l......o.a
    a.oHaloHal.H
    l..........o
    oHaloHaloHal
    
  • Input

    8 11 0
    SentidoHorario
    

    Output

    SentidoHora
    ..........r
    idoHorari.i
    t.......o.o
    n.o.....S.S
    e.Hoditne.e
    S.........n
    oiraroHodit
    
  • Input

    8 11 1
    SentidoAntiHorario
    

    Output

    S.aroHitnAo
    e.r.......d
    n.i.aroHi.i
    t.o.r...t.t
    i.S.....n.n
    d.entidoA.e
    o.........S
    AntiHorario
    
  • Information
    Author
    Omer Giménez
    Language
    Spanish
    Official solutions
    C++
    User solutions
    C++