Sistemas-L (2) P91801


Statement
 

pdf   zip

html

Este problema es parecido al anterior problema “Sistema-L”, excepto que esta vez no vamos a pedirte que hagas el dibujo entero: a partir de un Sistema-L de entrada, queremos que calcules el número de órdenes de dibujo que contendría en caso que generáramos el correspondiente archivo Postscript, y que muestres las órdenes de dibujo situadas entre la orden número i y la orden número j, ambas inclusive, suponiendo que la primera orden tiene el número 0. Por ejemplo: si la salida del sistema-L fuera

||
60 rotate
5 0 rlineto
-60 rotate
-60 rotate
5 0 rlineto
-60 rotate
-60 rotate
5 0 rlineto
||

y te pidiéramos las órdenes entre la 2 y la 4, tu programa debería escribir

||
8
-60 rotate
-60 rotate
5 0 rlineto
||

Entrada

Una entrada consiste en un sistema-L, siguiendo el mismo formato que en el problema “Sistemas-L”. A continuación, viene una línea con dos números i y j, separados por un espacio, cumpliendo 0≤ ij< T, donde T es el número total de órdenes de dibujo del sistema-L. Se te garantiza, además, que ji<100.

Salida

Escribe una línea con el número total T de órdenes que contendría el dibujo del sistema-L. A continuación, escribe ji+1 líneas con las órdenes pedidas.

Puntuación

Hay 10 grupos de entradas. Se darán 10 puntos por cada grupo de entradas resuelto correctamente, en menos de 1 segundo de CPU por entrada. Se garantiza que el número total T de órdenes de los sistemas-L del grupo i-ésimo no generaría salidas con más de 103, 104, 105, 106, 107, 108, 109, 1011, 1013, 1016 órdenes cada una.

Public test cases
  • Input

    +F--F--F
    3 0
    - - -60 rotate
    + + 60 rotate
    F F+F--F+F 5 0 rlineto
    2 4
    

    Output

    8
    -60 rotate
    -60 rotate
    5 0 rlineto
    
  • Input

    X
    6 23
    X -FX++FY- 
    Y +FX--FY+ 
    F T 10 0 rlineto
    + + 45 rotate
    - - -45 rotate
    T T 
    39189111 39189111

    Output

    58720250
    45 rotate
    
  • Input

    X
    5 25
    X -YF+XFX+FY- 
    Y +XF-YFY-FX+ 
    - - -90 rotate
    + + 90 rotate
    F F 10 0 rlineto
    123456789012300 123456789012309
    

    Output

    3752999689475411
    -90 rotate
    10 0 rlineto
    -90 rotate
    
    10 0 rlineto
    90 rotate
    
    10 0 rlineto
    
    90 rotate
    
  • Input

    A
    2 80
    A AB a
    B A b
    194248310000000 194248310000019
    

    Output

    61305790721611591
    a
    b
    a
    a
    b
    a
    a
    b
    a
    b
    a
    a
    b
    a
    b
    a
    a
    b
    a
    a
    
  • Information
    Author
    Omer Giménez
    Language
    Spanish
    Official solutions
    C++
    User solutions
    C++