Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include<iostream>#include<cstdio>#include<cstring>using namespace std;const int maxn=100;int n,a[maxn];int ans;bool p[maxn];void dfs(int u,int s){if (u>n) {ans++;return ;}for (int i=1;i<=n;i++)if (!p[i]&&a[i]!=s){p[i]=1;dfs(u+1,a[i]);p[i]=0;}}void solve(){scanf("%d",&n);char ch[5];for (int i=1;i<=n;i++){scanf("%s",&ch);a[i]=int(ch[0]);}ans=0;memset(p,0,sizeof(p));dfs(1,-1);