Il file lessie.txt contiene il testo dell'esercizio. I files hint1.txt, hint2.txt ... sono dei files con dei suggerimenti e considerazioni su come convenga affrontare un tale problema. (Essi non erano stati resi disponibili al momento dell'esame). Sono numerati 1,2 ... perche' alcuni suggerimenti sono forniti in modo incrementale; conviene leggerli nell'ordine (ciascuno puo' fare riferimento ai precedenti) sempre riprovando ad affrontare l'esercizio in autonomia prima di leggere il successivo (per non sprecare l'esercizio). Ma possono anche essere letti ad esercizio gia' risolto per ripercorrere i passi, cogliere le sfumature, e fare il punto sulle lessons learned. Il file lessie.cpp contiene una soluzione ben centrata: un algoritmo lineare, breve, immediato, ed efficiente. Al solito, proponiamo questo codice come standard da perseguire per affrontare questo esame. I file lessieSlowManyL.cpp e lessieSlowManyH.cpp contengono soluzioni quadratiche, che combinate pero' come fatto in lessie.cpp consegnano la soluzione lineare. Quindi forse vi conviene leggere prima questi due codici che contengono un'idea ciascuno, mentre lessie.cpp ne combina due. Io ho utilizzato questi codici come benchmark, per progettare opportunamente la famiglia dei casi di prova su cui valutare le vostre soluzioni. I file che iniziano per VR sono sostanzialmente i file di cui avete fatto l'upload durante l'esame. Quelli che iniziano col vostro numero di matricola sono proprio i tuoi, gli altri sono dei tuoi compagni. Il file randLessieField.cpp, una volta compilato, genera degli inputs validi per il problema rispondendo anche ad alcuni parametri che consentono di guidare la generazione dove reputato piu' interessante. E' il tipo di programma che, impiegando poco tempo per essere scritto, voi stessi avreste dovuto scrivervi durante l'esame per monitorare la correttezza dei vostri codici e quanti punti potevate aspettarvi per decidere in che direzione rivolgere mano a mano le vostre energie. Il file makeInputs.sh e' un file di shell (bash) che wrappa il programma randLessieField (quindi non puo' funzionare se non compilate prima randLessieField e non lo avete nella stessa cartella) generando i 20 casi di prova su cui (oltre che sull'esempio utilizzato nel testo) viene valutata la vostra sottomissione. In makeIputs.sh sono contenuti i parametri ed i seeds che determinano proprio quelle istanze, che potete quindi generare anche voi per verificare vi siano stati riconosciuti tutti i vostri punti! Questi punti, come da me assegnati (ma vi prego di controllarli), li trovate nel file lessie.scores