一座城市有n条南北走向的街道和n条东西走向的街道,现要将5条不用的长凳放置在街道相交处,且同一条街道上的长凳数不超过一条,问有多少种放置方案
#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<cstring>
using namespace std;
typedef long long LL;
LL C(LL n,LL r){
LL i,j,s=1;
if(r>n)return 0;
if(n-r<r)r=n-r;
for(i=0,j=1;i<r;i++){
s*=(n-i);
while(j<=r&&s%j==0)
s/=j,j++;
}
return s;
}
int main()
{
LL n,ans=1;
cin>>n;
for(LL i=n,j=0;j<5;j++,i--){
ans*=i;
}
cout<<ans*C(n,5)<<endl;
}