rt,样例过了,但是交上去就全部 RE,请问是为什么捏
#include<iostream>
#define int long long
#define QwQ cout<<"QwQ"<<endl;
using namespace std;
const int mod=1e9+7,N=1000100;
int qpow(int b,int e=mod-2){
int a=1;
while(e){
if(e&1) a=1ll*a*b%mod;
b=1ll*b*b%mod;
e>>=1;
}
return a;
}
int fac[N],inv[N];
signed main(){
fac[0]=1; inv[0]=1;
fac[1]=1; inv[1]=0;
for(int i=2;i<=1000000;++i){
fac[i]=1ll*fac[i-1]*i%mod;
inv[i]=1ll*(inv[i-2]+inv[i-1])%mod*(i-1)%mod;
}
int t; cin>>t;
while(t--){
int n,m; scanf("%d%d",&n,&m);
int ans=1ll*fac[n]*qpow(fac[m])%mod*qpow(fac[n-m])%mod;
printf("%d\n",1ll*ans*inv[n-m]%mod);
}
return 0;
}