Práctica de PRO2 - Primavera 2021 - Entrega intermedia X79318


Statement
 

pdf   zip   tar

html

Este problema corresponde a la entrega intermedia de la práctica. Tened en cuenta que:

  • Esta no es la entrega definitiva de la práctica completa, ni siquiera es una entrega provisional de la práctica completa
  • En esta entrega se ha de proporcionar todo el código necesario (clases, programa principal y Makefile) para poder usar todas las funcionalidades de la práctica, excepto “nuevo_curso” y “envio”.
  • En esta entrega no pedimos carpetas generadas mediante doxygen, pero los ficheros de la clases pueden llevar todos los comentarios doxygen que queráis; de hecho recomendamos que incluyáis las especificaciones de todas las operaciones y que sean lo más definitivas posible
  • Esta entrega no tendrá nota manual

Entrada

Una secuencia de instrucciones y datos que siguen el formato del enunciado de la práctica y del juego de pruebas público.

Salida

Una secuencia de resultados que siguen el formato del enunciado de la práctica y del juego de pruebas público.

Observación

El Jutge prueba vuestras entregas mediante 4 juegos de pruebas:

  • sample: el juego de pruebas público
  • privat1: juego de pruebas con énfasis en problemas y sesiones
  • privat2: juego de pruebas con énfasis en cursos y usuarios
  • privat3: juego de pruebas con énfasis en la eficiencia

En un fichero llamado practica.tar tenéis que entregar

  • Los ficheros .hh y .cc de las clases y el programa principal
  • El fichero Makefile, que usaremos para generar y probar el ejecutable

Tened en cuenta las siguientes restricciones:

  • El fichero que contiene el programa principal se ha de llamar program.cc
  • El Makefile ha de generar un ejecutable llamado program.exe
  • Es importante que uséis las opciones de compilación del Jutge de PRO2 (ved Documentation → Compilers → PRO2 a www.jutge.org)
  • No usar la opción -D_GLIBCXX_DEBUG o usarla de forma incorrecta podrá ser penalizado

Producid el fichero practica.tar con la instrucción Linux

tar -cvf practica.tar fitxer1 fitxer2 fitxer3 ...

desde el directorio/carpeta donde tengáis los ficheros que vais a entregar. Incluid esta instrucción en vuestro Makefile, de forma que el .tar se pueda generar ejecutando make practica.tar. Con eso reduciréis el riesgo de error en sucesivas entregas. El Jutge no acepta .tar donde los ficheros estén dentro de carpetas. Recomendamos usar GNU tar para reducir el riesgo de que el fichero practica.tar sea incompatible con el Jutge. No es necesario incluir BinTree.hh en practica.tar.

Public test cases
  • Input

    77
    V01 V02 V03 V04 V05 V06 V07 V08 V09 V10 V11 V12 V13
    V14 V15 V16 V17 V18 V19 V20 V21 V22 V23 V24 V25
    T01 T02 T03 T04 T05
    P01 P02 P03 P04 P05 P06
    C01 C02 C03 C04 C05
    L01 L02 L03 L04 L05 L06 L07 L08
    S01 S02 S03
    M01 M02 M03 M04 M05 M06 M07
    CP01 CP02 CP03 CP04 CP05 CP06 CP07
    AB01 AB02 AB03 AB04 AB05 AB06 AB07 AB08 AB09 AB10 AB11
    17
    tuplas T01 T02 T04 0 0 T05 0 0 T03 0 0
    vectores_0 V01 V02 0 0 V03 0 0
    vectores_1 V01 V02 V04 0 0 0 V03 V05 0 0 V06 0 0
    vectores_2 V07 V08 V09 V10 0 0 0 V11 0 0 V12 V13 V14 0 0 0 0
    vectores_3 V15 V16 V17 0 0 V18 0 0 0
    matrices V19 V20 V21 0 0 0 V22 V23 0 0 0
    pilas P01 P02 P04 0 0 0 P03 0 0
    colas C01 C02 C03 0 0 0 0
    vectores_sel V06 V10 V16 0 0 V24 V22 0 0 0 V25 V14 0 0 V18 0 0
    pilas_y_colas_sel P03 P05 P06 0 0 0 C02 C04 0 0 C05 0 0
    listas_1 L01 L02 L04 0 0 0 L03 0 0
    listas_2 L05 L06 L07 0 0 L08 0 0 0
    arb_bin_1 AB01 AB02 AB03 AB04 0 0 AB05 0 0 0 AB06 0 0
    arb_bin_2 AB07 AB08 0 0 AB09 AB10 0 0 AB11 0 0
    sets S01 S02 0 0 S03 0 0
    maps M01 M02 M03 0 0 M05 0 0 M04 M06 0 0 M07 0 0
    colas_prior CP01 CP02 CP04 0 0 0 CP03 CP05 CP06 0 0 CP07 0 0 0
    3
    2 tuplas vectores_0
    7 tuplas vectores_1 vectores_2 vectores_3 matrices pilas colas
    9 vectores_sel pilas_y_colas_sel listas_1 listas_2 arb_bin_1 arb_bin_2 sets maps colas_prior
    16
    MarcTerStegen
    SerginhoDest
    GerardPique
    ClementLenglet
    JordiAlba
    SergioBusquets
    FrenkieDeJong
    Pedri
    LionelMessi
    AntoineGriezmann
    AnsuFati
    MartaTorrejon
    AlexiaPutellas
    AitanaBonmati
    JenniferHermoso
    LiekeMartens
    listar_problemas
    listar_sesiones
    listar_cursos
    listar_usuarios
    nuevo_problema S03
    np S04
    np M08
    np M09
    nueva_sesion maps
    M07 M08 0 0 M09 0 0
    ns maps_y_sets_sel 
    S02 M02 M04 0 0 M08 0 0 S04 M05 0 0 M07 M09 0 0 0
    nuevo_problema G01
    np G02
    np G03
    np G04
    np G05
    np G06
    np G07
    np G08
    np G09
    np G10
    np G11
    np G12
    nueva_sesion grafos_1
    G01 G02 G03 G05 0 0 G06 0 0 G04 0 0 0
    ns grafos_2
    G07 G08 0 0 G09 G10 G12 0 0 0 G11 0 0
    baja_usuario AnsuFati
    b AnsuFati
    alta_usuario OusmaneDembele
    a SergioBusquets
    inscribir_curso Pedri 1
    i AnsuFati 1
    i Pedri 2
    i LionelMessi 5
    i AitanaBonmati 2
    i MarcTerStegen 3
    i LiekeMartens 1
    lu
    lc
    curso_usuario Pedri
    cu LionelMessi
    cu AnsuFati
    sesion_problema 1 V01
    sp 0 V01
    sp 1 V20
    sp 1 V30
    sp 2 V06
    sp 3 V06
    sp 4 CP01
    problemas_enviables Pedri
    pe AnsuFati
    pe SerginhoDest
    pe AitanaBonmati
    pe MarcTerStegen
    pe LiekeMartens
    problemas_resueltos Pedri
    pr LuisSuarez
    escribir_sesion grafos_2
    es grafos_3
    es colas_prior
    escribir_curso 3
    ec 0
    ec 1
    escribir_problema G12
    ep G999
    ep T01
    escribir_usuario MarcTerStegen
    eu LionelMessi
    eu LuisSuarez
    ls
    lp
    b AitanaBonmati
    ec 2
    fin
    
    

    Output

    #listar_problemas
    AB01(0,0,1)
    AB02(0,0,1)
    AB03(0,0,1)
    AB04(0,0,1)
    AB05(0,0,1)
    AB06(0,0,1)
    AB07(0,0,1)
    AB08(0,0,1)
    AB09(0,0,1)
    AB10(0,0,1)
    AB11(0,0,1)
    C01(0,0,1)
    C02(0,0,1)
    C03(0,0,1)
    C04(0,0,1)
    C05(0,0,1)
    CP01(0,0,1)
    CP02(0,0,1)
    CP03(0,0,1)
    CP04(0,0,1)
    CP05(0,0,1)
    CP06(0,0,1)
    CP07(0,0,1)
    L01(0,0,1)
    L02(0,0,1)
    L03(0,0,1)
    L04(0,0,1)
    L05(0,0,1)
    L06(0,0,1)
    L07(0,0,1)
    L08(0,0,1)
    M01(0,0,1)
    M02(0,0,1)
    M03(0,0,1)
    M04(0,0,1)
    M05(0,0,1)
    M06(0,0,1)
    M07(0,0,1)
    P01(0,0,1)
    P02(0,0,1)
    P03(0,0,1)
    P04(0,0,1)
    P05(0,0,1)
    P06(0,0,1)
    S01(0,0,1)
    S02(0,0,1)
    S03(0,0,1)
    T01(0,0,1)
    T02(0,0,1)
    T03(0,0,1)
    T04(0,0,1)
    T05(0,0,1)
    V01(0,0,1)
    V02(0,0,1)
    V03(0,0,1)
    V04(0,0,1)
    V05(0,0,1)
    V06(0,0,1)
    V07(0,0,1)
    V08(0,0,1)
    V09(0,0,1)
    V10(0,0,1)
    V11(0,0,1)
    V12(0,0,1)
    V13(0,0,1)
    V14(0,0,1)
    V15(0,0,1)
    V16(0,0,1)
    V17(0,0,1)
    V18(0,0,1)
    V19(0,0,1)
    V20(0,0,1)
    V21(0,0,1)
    V22(0,0,1)
    V23(0,0,1)
    V24(0,0,1)
    V25(0,0,1)
    #listar_sesiones
    arb_bin_1 6 ((((AB04)(AB05)AB03)AB02)(AB06)AB01)
    arb_bin_2 5 ((AB08)((AB10)(AB11)AB09)AB07)
    colas 3 (((C03)C02)C01)
    colas_prior 7 (((CP04)CP02)(((CP06)(CP07)CP05)CP03)CP01)
    listas_1 4 (((L04)L02)(L03)L01)
    listas_2 4 (((L07)(L08)L06)L05)
    maps 7 (((M03)(M05)M02)((M06)(M07)M04)M01)
    matrices 5 (((V21)V20)((V23)V22)V19)
    pilas 4 (((P04)P02)(P03)P01)
    pilas_y_colas_sel 6 (((P06)P05)((C04)(C05)C02)P03)
    sets 3 ((S02)(S03)S01)
    tuplas 5 (((T04)(T05)T02)(T03)T01)
    vectores_0 3 ((V02)(V03)V01)
    vectores_1 6 (((V04)V02)((V05)(V06)V03)V01)
    vectores_2 8 ((((V10)V09)(V11)V08)(((V14)V13)V12)V07)
    vectores_3 4 (((V17)(V18)V16)V15)
    vectores_sel 8 (((V16)((V22)V24)V10)((V14)(V18)V25)V06)
    #listar_cursos
    1 0 0 2 (tuplas vectores_0)
    2 0 0 7 (tuplas vectores_1 vectores_2 vectores_3 matrices pilas colas)
    3 0 0 9 (vectores_sel pilas_y_colas_sel listas_1 listas_2 arb_bin_1 arb_bin_2 sets maps colas_prior)
    #listar_usuarios
    AitanaBonmati(0,0,0,0)
    AlexiaPutellas(0,0,0,0)
    AnsuFati(0,0,0,0)
    AntoineGriezmann(0,0,0,0)
    ClementLenglet(0,0,0,0)
    FrenkieDeJong(0,0,0,0)
    GerardPique(0,0,0,0)
    JenniferHermoso(0,0,0,0)
    JordiAlba(0,0,0,0)
    LiekeMartens(0,0,0,0)
    LionelMessi(0,0,0,0)
    MarcTerStegen(0,0,0,0)
    MartaTorrejon(0,0,0,0)
    Pedri(0,0,0,0)
    SerginhoDest(0,0,0,0)
    SergioBusquets(0,0,0,0)
    #nuevo_problema S03
    error: el problema ya existe
    #np S04
    78
    #np M08
    79
    #np M09
    80
    #nueva_sesion maps
    error: la sesion ya existe
    #ns maps_y_sets_sel
    18
    #nuevo_problema G01
    81
    #np G02
    82
    #np G03
    83
    #np G04
    84
    #np G05
    85
    #np G06
    86
    #np G07
    87
    #np G08
    88
    #np G09
    89
    #np G10
    90
    #np G11
    91
    #np G12
    92
    #nueva_sesion grafos_1
    19
    #ns grafos_2
    20
    #baja_usuario AnsuFati
    15
    #b AnsuFati
    error: el usuario no existe
    #alta_usuario OusmaneDembele
    16
    #a SergioBusquets
    error: el usuario ya existe
    #inscribir_curso Pedri 1
    1
    #i AnsuFati 1
    error: el usuario no existe
    #i Pedri 2
    error: usuario inscrito en otro curso
    #i LionelMessi 5
    error: el curso no existe
    #i AitanaBonmati 2
    1
    #i MarcTerStegen 3
    1
    #i LiekeMartens 1
    2
    #lu
    AitanaBonmati(0,0,0,2)
    AlexiaPutellas(0,0,0,0)
    AntoineGriezmann(0,0,0,0)
    ClementLenglet(0,0,0,0)
    FrenkieDeJong(0,0,0,0)
    GerardPique(0,0,0,0)
    JenniferHermoso(0,0,0,0)
    JordiAlba(0,0,0,0)
    LiekeMartens(0,0,0,1)
    LionelMessi(0,0,0,0)
    MarcTerStegen(0,0,0,3)
    MartaTorrejon(0,0,0,0)
    OusmaneDembele(0,0,0,0)
    Pedri(0,0,0,1)
    SerginhoDest(0,0,0,0)
    SergioBusquets(0,0,0,0)
    #lc
    1 0 2 2 (tuplas vectores_0)
    2 0 1 7 (tuplas vectores_1 vectores_2 vectores_3 matrices pilas colas)
    3 0 1 9 (vectores_sel pilas_y_colas_sel listas_1 listas_2 arb_bin_1 arb_bin_2 sets maps colas_prior)
    #curso_usuario Pedri
    1
    #cu LionelMessi
    0
    #cu AnsuFati
    error: el usuario no existe
    #sesion_problema 1 V01
    vectores_0
    #sp 0 V01
    error: el curso no existe
    #sp 1 V20
    error: el problema no pertenece al curso
    #sp 1 V30
    error: el problema no existe
    #sp 2 V06
    vectores_1
    #sp 3 V06
    vectores_sel
    #sp 4 CP01
    error: el curso no existe
    #problemas_enviables Pedri
    T01(0)
    V01(0)
    #pe AnsuFati
    error: el usuario no existe
    #pe SerginhoDest
    error: usuario no inscrito en ningun curso
    #pe AitanaBonmati
    C01(0)
    P01(0)
    T01(0)
    V01(0)
    V07(0)
    V15(0)
    V19(0)
    #pe MarcTerStegen
    AB01(0)
    AB07(0)
    CP01(0)
    L01(0)
    L05(0)
    M01(0)
    P03(0)
    S01(0)
    V06(0)
    #pe LiekeMartens
    T01(0)
    V01(0)
    #problemas_resueltos Pedri
    #pr LuisSuarez
    error: el usuario no existe
    #escribir_sesion grafos_2
    grafos_2 6 ((G08)(((G12)G10)(G11)G09)G07)
    #es grafos_3
    error: la sesion no existe
    #es colas_prior
    colas_prior 7 (((CP04)CP02)(((CP06)(CP07)CP05)CP03)CP01)
    #escribir_curso 3
    3 0 1 9 (vectores_sel pilas_y_colas_sel listas_1 listas_2 arb_bin_1 arb_bin_2 sets maps colas_prior)
    #ec 0
    error: el curso no existe
    #ec 1
    1 0 2 2 (tuplas vectores_0)
    #escribir_problema G12
    G12(0,0,1)
    #ep G999
    error: el problema no existe
    #ep T01
    T01(0,0,1)
    #escribir_usuario MarcTerStegen
    MarcTerStegen(0,0,0,3)
    #eu LionelMessi
    LionelMessi(0,0,0,0)
    #eu LuisSuarez
    error: el usuario no existe
    #ls
    arb_bin_1 6 ((((AB04)(AB05)AB03)AB02)(AB06)AB01)
    arb_bin_2 5 ((AB08)((AB10)(AB11)AB09)AB07)
    colas 3 (((C03)C02)C01)
    colas_prior 7 (((CP04)CP02)(((CP06)(CP07)CP05)CP03)CP01)
    grafos_1 6 ((((G05)(G06)G03)(G04)G02)G01)
    grafos_2 6 ((G08)(((G12)G10)(G11)G09)G07)
    listas_1 4 (((L04)L02)(L03)L01)
    listas_2 4 (((L07)(L08)L06)L05)
    maps 7 (((M03)(M05)M02)((M06)(M07)M04)M01)
    maps_y_sets_sel 8 (((M04)(M08)M02)((M05)((M09)M07)S04)S02)
    matrices 5 (((V21)V20)((V23)V22)V19)
    pilas 4 (((P04)P02)(P03)P01)
    pilas_y_colas_sel 6 (((P06)P05)((C04)(C05)C02)P03)
    sets 3 ((S02)(S03)S01)
    tuplas 5 (((T04)(T05)T02)(T03)T01)
    vectores_0 3 ((V02)(V03)V01)
    vectores_1 6 (((V04)V02)((V05)(V06)V03)V01)
    vectores_2 8 ((((V10)V09)(V11)V08)(((V14)V13)V12)V07)
    vectores_3 4 (((V17)(V18)V16)V15)
    vectores_sel 8 (((V16)((V22)V24)V10)((V14)(V18)V25)V06)
    #lp
    AB01(0,0,1)
    AB02(0,0,1)
    AB03(0,0,1)
    AB04(0,0,1)
    AB05(0,0,1)
    AB06(0,0,1)
    AB07(0,0,1)
    AB08(0,0,1)
    AB09(0,0,1)
    AB10(0,0,1)
    AB11(0,0,1)
    C01(0,0,1)
    C02(0,0,1)
    C03(0,0,1)
    C04(0,0,1)
    C05(0,0,1)
    CP01(0,0,1)
    CP02(0,0,1)
    CP03(0,0,1)
    CP04(0,0,1)
    CP05(0,0,1)
    CP06(0,0,1)
    CP07(0,0,1)
    G01(0,0,1)
    G02(0,0,1)
    G03(0,0,1)
    G04(0,0,1)
    G05(0,0,1)
    G06(0,0,1)
    G07(0,0,1)
    G08(0,0,1)
    G09(0,0,1)
    G10(0,0,1)
    G11(0,0,1)
    G12(0,0,1)
    L01(0,0,1)
    L02(0,0,1)
    L03(0,0,1)
    L04(0,0,1)
    L05(0,0,1)
    L06(0,0,1)
    L07(0,0,1)
    L08(0,0,1)
    M01(0,0,1)
    M02(0,0,1)
    M03(0,0,1)
    M04(0,0,1)
    M05(0,0,1)
    M06(0,0,1)
    M07(0,0,1)
    M08(0,0,1)
    M09(0,0,1)
    P01(0,0,1)
    P02(0,0,1)
    P03(0,0,1)
    P04(0,0,1)
    P05(0,0,1)
    P06(0,0,1)
    S01(0,0,1)
    S02(0,0,1)
    S03(0,0,1)
    S04(0,0,1)
    T01(0,0,1)
    T02(0,0,1)
    T03(0,0,1)
    T04(0,0,1)
    T05(0,0,1)
    V01(0,0,1)
    V02(0,0,1)
    V03(0,0,1)
    V04(0,0,1)
    V05(0,0,1)
    V06(0,0,1)
    V07(0,0,1)
    V08(0,0,1)
    V09(0,0,1)
    V10(0,0,1)
    V11(0,0,1)
    V12(0,0,1)
    V13(0,0,1)
    V14(0,0,1)
    V15(0,0,1)
    V16(0,0,1)
    V17(0,0,1)
    V18(0,0,1)
    V19(0,0,1)
    V20(0,0,1)
    V21(0,0,1)
    V22(0,0,1)
    V23(0,0,1)
    V24(0,0,1)
    V25(0,0,1)
    #b AitanaBonmati
    15
    #ec 2
    2 0 0 7 (tuplas vectores_1 vectores_2 vectores_3 matrices pilas colas)
    
  • Information
    Author
    PRO2
    Language
    Spanish
    Official solutions
    Make
    User solutions
    Make