MY code gives wrong answer
#include
#define ll long long int
using namespace std;
ll dp[1001][80][22];
ll rec(ll ox[],ll ni[],ll w[],ll c,ll o,ll n,ll nt){
if(dp[nt][o][n]!=-1)return dp[nt][o][n];
if(o<=0&&n<=0)return 0;
if(nt==c)return INT_MAX;
ll a1=w[nt]+rec(ox,ni,w,c,o-ox[nt],n-ni[nt],nt+1);
ll a2=rec(ox,ni,w,c,o,n,nt+1);
dp[nt][o][n]=min(a1,a2);
return dp[nt][o][n];
}
int main(){
ll t;
cin>>t;
while(t–){
memset(dp,-1,sizeof(dp));
ll o,n;
cin>>o>>n;
ll c;
cin>>c;
ll ox[c],ni[c],w[c];
for(ll i=0;i<c;i++){
cin>>ox[i]>>ni[i]>>w[i];
}
cout<<rec(ox,ni,w,c,o,n,0)<<"\n";
}
}