problem link -
for(int lines=0;lines<=m;lines++){
dp[0][lines][lines*vec[0]]=1;
}
for(int i=0;i<n-1;i++){
for(int lines=0;lines<=m;lines++){
for(int bugs=0;bugs<=b;bugs++){
for(int k=0;k<=lines;k++)
dp[i+1][lines][bugs]=((dp[i+1][lines][bugs]%mod)+((bugs-k*vec[i+1]>=0)?dp[i][lines-k][bugs-k*vec[i+1]]:0)%mod)%mod;
}
}
}
int ans=0;
for(int bugs=0;bugs<=b;bugs++){
ans=((ans%mod)+(dp[n-1][m][bugs]%mod))%mod;
}
i have solved this problem in O(n4) how to optimize it can someone give any idea?