Discesa massima problemi correttore

Ciao ragazzi stavo risolvendo il problema discesa massima vi lascio qui sotto il codice, nonostante il codice sia al 100% corretto da 0/100, cosa posso fare ?

#include <bits/stdc++.h>

using namespace std;
int a;
int ok[10][10];
int solve(int b,int c){
        if((b>=a)||(c>=a)){
            return 0;
        }else{
            return ok[b][c]+max(solve(b+1,c),solve(b+1,c+1));
        }
        return ok[b][c]+max(solve(b+1,c),solve(b+1,c+1));
}

int main()
{
    cin >> a;
    for(int i=0;i<a;i++){
        for(int j=0;j<=i;j++){
            cin >> ok[i][j];
        }
    }
    cout << solve(0,0);
    return 0;
}

Risolto bastava aggiungere:

freopen(“input.txt”,“r”, stdin);
freopen(“output.txt”, “w”, stdout);
.