13,825
社区成员
发帖
与我相关
我的任务
分享
#include <bits/stdc++.h>
using namespace std;
vector<string> a;
int n;
int b[10];
int ret;
void dfs(int i) {
if(i == a.size()) {
ret++;
} else {
for(int j = 0; j < a[i].size(); j++) {
if(b[a[i][j] - '0']) {
b[a[i][j] - '0'] = 0;
dfs(i + 1);
b[a[i][j] - '0'] = 1;
}
}
}
}
int main() {
cin >> n;
for(int i = 0; i < n; i++) {
string x; cin >> x;
a.push_back(x);
}
for(int i = 0; i < 10; i++) b[i] = 1;
ret = 0;
dfs(0);
cout << ret << endl;
return 0;
}