Aquest és un problema del jutge per fer lliuraments de l’examen de la pràctica
Descarregueu els fitxers públics per obtenir el material:
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:
Heu de lliurar un fitxer solucio.cc amb una implementació eficient de les operacions que es demanen.
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