Per favore potrei avere uno dei file di test che il mio codice non supera prima di esplodere? :boom
Ad es. il n. 10
Grazie
Daniele
Salve, anche avendo a disposizione il decimo test case dubito che riuscirai a trovare l’errore dell’algoritmo. N è troppo alto per poter esaminare cosa succede. In questi casi si può procedere in vari modi:
- Scrivere a mano piccoli casi di test ed eventualmente migliorare la situazione.
- Scrivere una soluzione lenta con la certezza che risolva ogni istanza e confrontare l’output con l’eventuale soluzione da migliorare. Solitamente si accompagna questo metodo con un generatore di test case randomici.
- Controllare quale subtasks si sbagliano e generare delle istanze specifiche da controllare.
- Controllare le assunzioni e verificare che non ci siano problemi legati all’overflow oppure ad accessi a memoria non allocata.
- Generare casi limiti, cosa succede se le assunzioni assumessero i loro valori minimi e massimi?
- Altri ancora che non ricordo.
Saper generare testcase che rompono le soluzioni non è facile, ma con l’esperienza si migliora.
Grazie per i consigli, ma penso di aver giĂ seguito tutti i tuoi suggerimenti.
Probabilmente mi è sfuggito qualcosa nelle specifiche; in effetti non capisco il significato di questo punto:
-Nella scelta del blocco di B quadri, l’acquirente non può scegliere un blocco agli estremi della fila in modo da prenderne meno di B.
Ci tornerò sopra a mente fredda.
Ciao
Significa che non puoi dividere quel B in un prefisso ed un suffisso, quindi se vuoi prendere 4 quadri non puoi prendere i primi 2 e gli ultimi 2 e nemmeno i primi 3 e l’ultimo, eccetera…
Comunque se proprio non trovi l’errore puoi postare il codice.
Mi ci “divertirò” ancora un po’ …
Spero di aver capito bene: a paritĂ di valore va scelto il blocco B piĂą lungo?
Grazie di nuovo
Dal testo:
vorrebbe rendere B (il numero di quadri che ci si porta a casa comprando il biglietto d’ingresso)
più alto possibile. Aiutalo a capire qual è il valore massimo di B per rendere il più appetibile possibile
la lotteria!
Quindi si, il blocco piĂą lungo in cui il valore non superi M.