Lotteria di quadri file di test

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.

1 Mi Piace

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.