https://www.luogu.org/problem/P2290
pruferボードの質問
しかし、それはまた、紫のテーマは、その理由を持っている、見てみているピット
コード:(コードは醜いです、私は書いていない)(私は嘔吐のように感じる参照)
#include<bits/stdc++.h>
#define ll long long
using namespace std;
int n;
ll d[151];
ll jie[151];
ll sum;
inline ll calc(ll x){
ll ans=1;
for(int i=2;i<=x;i++){
ans*=i;
}
return ans;
}
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%lld",&d[i]);
sum+=d[i]-1;
if(d[i]==0&&n!=1){
printf("0");
return 0;
}
jie[i]=calc(d[i]-1);
}
if(sum!=n-2){
printf("0");
return 0;
}
ll ans=1;
int j=1;
for(int i=1;i<=n-2;i++){
ans*=i;
if(j>n)continue;
if(ans%jie[j]==0){
ans/=jie[j];
j++;
}
}
printf("%lld",ans);
return 0;
}