这道题目其实算是组合数题吧
求出每个牛能在多少个牛棚中放下
在求组合数即可
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll N=1e5+1e4,M=1e3+1e2;
const ll Maxn=0x3ffffff,Minm=-0x3ffffff;
ll n;
ll a[N],b[N];
ll ans=1;
signed main()
{
cin>>n;
for(ll i=1;i<=n;i++)cin>>a[i];
sort(a+1,a+n+1);
for(ll i=1;i<=n;i++)cin>>b[i];
for(ll i=n;i>=1;i--)
{
ll sum=0;
for(ll j=1;j<=n;j++)
{
if(b[j]>=a[i])sum++;
}
sum-=(n-i);
ans*=sum;
}
cout<<ans;
return 0;
}