Quasipal lunghezza errata

Salve, sono una capra nella ricorsione, stranamente sembra che abbia risolto correttamente questo problema, a parte il testcase 005 in cui mi dice “Risposta errata (lunghezza errata)”

Prima di arrivare a 89/100 stampavo la soluzione in questo modo:

 for (int i=0; i<m; i++)
    cout << mat[pos[i]] << "\n";

E, leggendo qua, l’ho cambiata in modo che stampasse ogni singolo carattere, così:

for (int i=0; i<m; i++){
  for (int j=0; j<n; j++)
       cout << mat[pos[i]][j];
   cout << "\n";
}

Così funziona su ogni caso che ho trovato/creato, il testcase 005 però non ne vuole proprio sapere niente.

https://pastebin.com/2qCsrsvd

La funzione ric() fa questo:

  • se tutti i numeri sono stati usati controlla se quella particolare configurazione è accettabile, se sì la stampa ed esce
  • ad ogni numero non usato viene assegnato un indice uguale a quanti numeri sono stati usati, viene segnato come usato, viene richiamata la funzione poi viene segnato come non usato.
1 Mi Piace
for (int i=0; i<8; i++)
        for (int j=0; j<9; j++)
            mat[i][j] = '\0';

Risolto aggiungendo una colonna e riempendo la matrice di '\0'(caratteri terminatori) prima dell’input :sunglasses:

1 Mi Piace