Potrei sbagliare o aver avuto una svista io, ho maggior dimestichezza con altri linguaggi piuttosto che il c, ma la variabile n non mi pare che fosse stata precedentemente dichiarata da nessuna parte, potrebbe essere quella la fonte dell'errore.
codice:int minCost(int x, int y) { if (x < 0 || x >= n) return INF; else if (y == 0) return castle[x][y]; else return min(minCost(x-1, y-1), minCost(x, y-1), minCost(x+1, y-1)) + castle[x][y]; }