Prova ad inserire nel ciclo for interno al while qualcosa tipo:
// giorni necessari per togliere tutti i bachi dalla stanza iesima
long long giorninecessari = app / ucc2;
if (app % ucc2 != 0) ++giorninecessari;
if (giorninecessari > day) {
rim = day * num2 + 1; // forza il test sotto a mettere inf=day
break; // esce dal ciclo, inutile proseguire
}