#include <bits/stdc++.h>
#define ll long long
using namespace std;
ll dp[(1<<19) + 1][101];
string s;
ll MOD;
ll solve(ll mask,ll mod){
if(mask == ((1 << s.size()) - 1)){
return (mod == 0);
}
if(dp[mask][mod]!= -1){
return dp[mask][mod];
}
ll ans = 0;
ll check[10] = {0};
for(ll i=0;i<s.size();i++){
if(s[i] == '0'){
if(!(mask)){
continue;
}
}
if((!(mask & (1<< i))) && !(check[s[i] - '0'])){
ans = (ans + solve(mask|(1<<i),(mod*10 + s[i] - '0')%MOD));
check[s[i] - '0'] = 1;
}
}
return dp[mask][mod] = ans;
}
int main() {
// your code goes here
int t;
cin >> t;
while(t–){
cin >> s;
cin >> MOD;
memset(dp,-1,sizeof dp);
cout << solve(0,0) << "\n";
}
return 0;
}
can you please explain what is not working
its giving error
/bin/run.sh: line 4: 18 Killed ./exe