Language: C++

maxn+10];

    void init(){
        fac[0]=1;
        for(int i=1;i<=maxn;i++) fac[i]=(fac[i-1]*i)%mod;
        inv_fac[maxn]=ksm(fac[maxn],mod-2);
        for(int i=maxn-1;i>=0;i--) inv_fac[i]=(inv_fac[i+1]*(i+1))%mod;
    }

    ll C(int n,int m){
        if(n < 0 || m < 0 || m > n) return 0;
        if(m == 0 || m == n) return 1;
        return fac[n]*inv_fac[n-m]%mod*inv_fac[m]%mod;
    }
}

const ll mod = 1e9+7;

int main (){
    model::init();
    //cout<<model::C(5,2)<<endl;
	int a,b,h,w;cin>>h>>w>>a>>b;
	ll ans=0;
	for(int i=b+1;i<=w;i++) ans+=(model::C(h-a-1+i-1,i-1)*model::C(a-1+w-i,a-1))%mod,ans%=mod;
	cout<<ans<<endl;
	return 0;
}


Compiler output:
a.cc:1:1: error: 'maxn' does not name a type
    1 | maxn+10];
      | ^~~~
a.cc: In function 'void init()':
a.cc:4:9: error: 'fac' was not declared in this scope
    4 |         fac[0]=1;
      |         ^~~
a.cc:5:24: error: 'maxn' was not declared in this scope
    5 |         for(int i=1;i<=maxn;i++) fac[i]=(fac[i-1]*i)%mod;
      |                        ^~~~
a.cc:5:54: error: 'mod' was not declared in this scope
    5 |         for(int i=1;i<=maxn;i++) fac[i]=(fac[i-1]*i)%mod;
      |                                                      ^~~
a.cc:6:9: error: 'inv_fac' was not declared in this scope
    6 |         inv_fac[maxn]=ksm(fac[maxn],mod-2);
      |         ^~~~~~~
a.cc:6:17: error: 'maxn' was not declared in this scope
    6 |         inv_fac[maxn]=ksm(fac[maxn],mod-2);
      |                 ^~~~
a.cc:6:37: error: 'mod' was not declared in this scope
    6 |         inv_fac[maxn]=ksm(fac[maxn],mod-2);
      |                                     ^~~
a.cc:6:23: error: 'ksm' was not declared in this scope
    6 |         inv_fac[maxn]=ksm(fac[maxn],mod-2);
      |                       ^~~
a.cc: At global scope:
a.cc:10:5: error: 'll' does not name a type
   10 |     ll C(int n,int m){
      |     ^~
a.cc:15:1: error: expected declaration before '}' token
   15 | }
      | ^
a.cc:17:7: error: 'll' does not name a type
   17 | const ll mod = 1e9+7;
      |       ^~
a.cc: In function 'int main()':
a.cc:20:5: error: 'model' has not been declared
   20 |     model::init();
      |     ^~~~~
a.cc:22:21: error: 'cin' was not declared in this scope
   22 |         int a,b,h,w;cin>>h>>w>>a>>b;
      |                     ^~~
a.cc:23:9: error: 'll' was not declared in this scope
   23 |         ll ans=0;
      |         ^~
a.cc:24:33: error: 'ans' was not declared in this scope
   24 |         for(int i=b+1;i<=w;i++) ans+=(model::C(h-a-1+i-1,i-1)*model::C(a-1+w-i,a-1))%mod,ans%=mod;
      |                                 ^~~
a.cc:24:39: error: 'model' has not been declared
   24 |         for(int i=b+1;i<=w;i++) ans+=(model::C(h-a-1+i-1,i-1)*model::C(a-1+w-i,a-1))%mod,ans%=mod;
      |                                       ^~~~~
a.cc:24:63: error: 'model' has not been declared
   24 |         for(int i=b+1;i<=w;i++) ans+=(model::C(h-a-1+i-1,i-1)*model::C(a-1+w-i,a-1))%mod,ans%=mod;
      |                                                               ^~~~~
a.cc:24:86: error: 'mod' was not declared in this scope
   24 |         for(int i=b+1;i<=w;i++) ans+=(model::C(h-a-1+i-1,i-1)*model::C(a-1+w-i,a-1))%mod,ans%=mod;
      |                                                                                      ^~~
a.cc:25:9: error: 'cout' was not declared in this scope
   25 |         cout<<ans<<endl;
      |         ^~~~
a.cc:25:15: error: 'ans' was not declared in this scope
   25 |         cout<<ans<<endl;
      |               ^~~
a.cc:25:20: error: 'endl' was not declared in this scope
   25 |         cout<<ans<<endl;
      |                    ^~~~