Mappa antica 5/100

Ciao ragazzi sono riuscito a implementare questo codice per mappa antica, sono quasi sicuro sia giusto eppure ricevo 5/100

#include <bits/stdc++.h>

using namespace std;
char a[100][100];
long int n;
long int solve(char arr[100][100],int i,int j){
    if((i>=n)||(j>=n)){
        return INT_MAX;
    }else if((i==n-1)&&(j==n-1)){
        return 1;
    }else if(arr[i][j]=='+'){
        return INT_MAX;
    }else{
        return 1+(min({solve(arr, i+1, j),solve( arr, i, j+1),solve( arr, i+1, j+1)}));
    }
    return 1+(min({solve(arr, i+1, j),solve( arr, i, j+1),solve( arr, i+1, j+1)}));
}

int main()
{
    freopen("input.txt","r",stdin);
    freopen("output.txt","w",stdout);
    cin >> n;
    for(int i=0;i<n;i++){
        for(int j=0;j<n;j++){
            cin >> a[i][j];
        }
    }
    cout << solve(a,0,0);
    return 0;
}

Non ho analizzato a fondo il tuo codice ma mi sembra di capire che tu provi solo 3 delle 8 possibili uscite dalla lastra nella quale ti trovi.
con una situazione del genere che succede?

*++**
+**+*
*+++*
*****
*****