Lovely cats(cats) error

Ciao, stavo provando a risolvere cats ma non capisco dove sia il problema. La mia soluzione è stata dp con una matrice.

Ogni casella indica “soluzione migliore avendo gli indici dei maschi fino a i, e indici delle femmine fino a j”.
Ogni casella può venire da tre possibili azioni:
a) ho aggiunto un maschio e una femmina
b) ho aggiunto solo un maschio
c) ho aggiunto solo una femmina

#include <iostream>
#include <cmath>

#define MAXN 1001

using namespace std;

int M[MAXN], F[MAXN];
int nM, nF;
int r[MAXN][MAXN];

int main() {
	freopen("input.txt","r",stdin);
    cin >> nM >> nF;
    for (int i = 0; i < nM; i++)
        cin >> M[i];
    for (int i = 0; i < nF; i++)
        cin >> F[i];

	int a,b,c,i,j;
	for(i=0;i<nM;++i){
		for(j=0;j<nF;++j){
			a = abs(M[i]-F[j]);
			b = c = 0;
			if(i-1>=0 || j-1>=0) a = r[i-1][j-1]+abs(M[i]-F[j]);
			if(i-1>=0) b = r[i-1][j];
			if(j-1>=0) c = r[i][j-1];
			r[i][j] = max(a,max(b,c));
		}
	}
	
	cout << r[nM-1][nF-1] << endl;
}

La soluzione fa solo 25/100 sbagliando output, consigli?

Quando fai un controllo per il caso “ho aggiunto un maschio e una femmina” dovresti controllare che il numero di maschi sia maggiore di 0 e il numero di femmine sia maggiore di 0, per il momento controlli sono che almeno uno dei due lo sia.

lol in effetti ahah, grazie mille