Examen Práctica de PRO2 - Primavera 2018 - Turno 1 X17171


Statement
 

pdf   zip   tar

html

Aquest és un problema del jutge per fer lliuraments de l’examen de la pràctica

  • Aquest examen dura una hora i quaranta-cinc minuts
  • No es corregirà cap lliurament que no compili
  • L’examen es fa sense apunts
  • El 50% de la nota és de l’execució, l’altre 50% de la correcció manual
  • Es corregirà el darrer enviament amb més jocs de proves correctes
  • En cas de no passar cap joc de proves es farà la correcció manual del darrer enviament que compili
  • El nombre d’enviaments no fa baixar la nota

Descarregueu els fitxers públics per obtenir el material:

  • enunciat d’aquest examen
  • enunciat de la pràctica
  • especificació de BinTree
  • fitxer llegeixme.txt
  • codi ja implementat
  • fitxer Makefile
  • joc de proves públic

Ara us resumim els detalls més importants de la implementació que us donem.

Els atributs d’un objecte Almacen son:

  BinTree<int> a;
  vector<Sala> salas;
  int n_salas;

i el seu invariant de representació és:

  a te n_salas nodes
  cada node d'a te un valor entre 1 i n_salas
  tots els valors entre 1 i n_salas apareixen en algun node d'a
  salas te n_salas elements
  salas[i] representa la colocacio dels productes de la sala amb id i+1

Els atributs d’un objecte Sala són:

  int pos;
  vector<string> estanteria;

pos és el nombre de posicions de estanteria.

Haureu de fer servir una operació ja implementada de Sala:

int poner_items(string & id_p,int c_p)
\\ pre : c_p >0
\\ pos : s'han posat a estanteria fins a c_p vegades id_p a les posicions on hi havia "NULL", començant per l'esquerra
         el resultat ens diu quants id_p no han capigut

Després de llegir l’enunciat de l’examen atentament, copieu aquesta plantilla en un fitxer anomenat solution.cc i completeu-la. Per solucionar el problema no és necessari afegir altres operacions a solution.cc, però es poden afegir si voleu. Teniu en compte que aquestes operacions no poden pertànyer a cap classe perque no heu de modificar els fitxers .hh ja que el jutge farà servir els fitxers que us donem i el vostre fitxer solution.cc.

// Poseu aqui el vostre nom d'usuari

#include "Sala.hh"
#include "Almacen.hh"

int Almacen::distribuir_aux(const BinTree<int> & a, vector<Sala> & salas, string & id_p, int cantidad)
{
 // Afegiu aqui el vostre codi
}

void Sala::vaciar(int h)
{
 // Afegiu aqui el vostre codi
}

Entrada

Una seqüència d’instruccions seguint el format de l’enunciat de l’examen i del joc de proves públic.

Sortida

El seu resultat seguint el format de l’enunciat de l’examen i del joc de proves públic.

Observació

El Jutge prova el vostre lliurament mitjançant 4 jocs de proves:

  • sample: el joc de proves públic.
  • privat1: joc de proves privat que fa èmfasi en la nova operació dejar_hueco
  • privat2: joc de proves privat que fa èmfasi en la nova versió de l’operació distribuir
  • privat3: joc de proves privat que fa una mica de tot

Heu de lliurar un fitxer solucio.cc amb una implementació eficient de les operacions que es demanen.

Public test cases
  • Input

    7
    1 2 4 0 0 5 0 0 3 6 0 0 7 0 0
    1
    4
    9
    6
    12
    2
    4
    distribuir AAAA 3
    distribuir BBBB 5
    escribir 1
    escribir 2
    escribir 3
    escribir 4
    escribir 5
    escribir 6
    escribir 7
    vaciar 3 4
    vaciar 5 4
    escribir 3
    escribir 5
    fin
    
    

    Output

    distribuir AAAA 3
      0
    distribuir BBBB 5
      0
    escribir 1
      NULL
    escribir 2
      NULL NULL NULL NULL
    escribir 3
      NULL NULL NULL NULL NULL NULL NULL NULL NULL
    escribir 4
      AAAA BBBB BBBB NULL NULL NULL
    escribir 5
      AAAA BBBB NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
    escribir 6
      AAAA BBBB
    escribir 7
      BBBB NULL NULL NULL
    vaciar 3 4
    vaciar 5 4
    escribir 3
      NULL NULL NULL NULL NULL NULL NULL NULL NULL
    escribir 5
      NULL NULL NULL NULL AAAA BBBB NULL NULL NULL NULL NULL NULL
    fin
    
  • Information
    Author
    PR02
    Language
    Catalan
    Official solutions
    C++
    User solutions
    C++