Et de préférence, utilises des tests avec des cas "limites". Par exemple en générant aléatoirement un gros test avec le
nombre d'élément maximal (pour tester ta consommation de mémoire/temps), des entrées sortant de l'ordinaire (tous les
éléments égaux/différents, des éléments proches de leurs limites etc...).
Et si ton programme semble ne pas avoir de problèmes de temps ou de mémoire, mais que tu es incapable de dire si la
sortie de ton programme est valide, alors utilise un algorithme naif mais sur pour vérifier tes réponses (avec des
entrées de tailles réduites si la complexité de ce dernier est trop élevée).
exemple :
| while(1) {
machin input=generer_test_aleatoire();
truc output1=ma_solution(input);
truc ouput2=solution_naive(input);
if(output1!=output2) afficher(input,output1,output2);
}
|
Normalement, avec ces différentes vérifications, tu as peu de chance de ne pas comprendre d'où vient le problème (sauf
dans certains cas, mais c'est relativement rare pour les exos que l'on trouve de Prologin).