Dungeon game My code is giving wrong ans can anyone suggest why ??

#include<bits/stdc++.h>
int helper(vector<vector >dungeon,int x,int y,int m,int n,int sum,int sumMin) {
static int ans = INT_MIN;

if( x>=m || y >= n )
    return ans;

sum += dungeon[x][y];
sumMin = min(sum,sumMin);

if(x == m-1 && y== n-1) {
    if(ans < sumMin) {
      ans = sumMin;  
    }
    return ans;
}

helper(dungeon,x+1,y,m,n,sum,sumMin);
helper(dungeon,x,y+1,m,n,sum,sumMin);
return ans;

}

class Solution {
public:
int calculateMinimumHP(vector<vector>& dungeon) {

    int x = 0,y = 0,sum = 0;
    int a = helper(dungeon,x,y,dungeon.size(),dungeon[0].size(),sum,INT_MAX ); 
    if(a>0)
        return 1;
    int ans =  (1 -a);
    return ans;
    
}

};

Comments (0)