criyle/codenet-compile-errors huggingface dataset:
Language: C

#include<cstdio>
int maze[42][42];
bool flag[42][42];
int main()
{
    int h,w,a,b;
    scanf("%d %d %d %d",&h,&w,&a,&b);
    if(h==a) // If you can not go and end points coincide, it outputs 0
    {
        printf("0\n");
        return 0;
    } 
    flag[1][1]=1;// End Marker, that they can not go
    for(int i=h-a+1;i<=h;i++)
    {
        for(int j=1;j<=b;j++) // will not go area assigned to 1
        {
            flag[i][j]=1;
        }
    }
    for(int i=1;i<=h;i++)
    {
        for(int j=1;j<=w;j++)
        {
            if(flag[i][j]==1)  // If this point can not go, this point will be assigned to the program number 0
                maze[i][j]=0;
            else if(i==1||j==1) // consider boundary
                maze[i][j]=1;
            else
                maze[i][j]=(maze[i-1][j]+maze[i][j-1])%1000000007;
                // recursive walked the walk each point, then modulo
        }
    }
    printf("%d\n",maze[h][w]%1000000007);
    return 0;
}

Compiler output:
main.c:1:9: fatal error: cstdio: No such file or directory
    1 | #include<cstdio>
      |         ^~~~~~~~
compilation terminated.
Language: C++

#include "iostream"
using namespace std; 

long long modfact(long long a) {
	long long res = 1; 
  	 while (a-- > 0) {
     	res = (res + a) % (10e9+7)
     }
  
	return res; 
}

int main() {
	long long w, h, a, b; 
  	cin >> h >> w >> a >> b; 
  
	long long total = modfact(w+h) / (modfact(w) * modfact(h)) % (10e9+7);
  	long long remov = modfact(a+b) / (modfact(a) * modfact(b)) % (10e9+7); 
  	cout << (total-remov+10e9+7) % (10e9+7) << endl; 
  	
}

Compiler output:
a.cc: In function 'long long int modfact(long long int)':
a.cc:7:25: error: invalid operands of types 'long long int' and 'double' to binary 'operator%'
    7 |         res = (res + a) % (10e9+7)
      |               ~~~~~~~~~ ^ ~~~~~~~~
      |                    |           |
      |                    |           double
      |                    long long int
a.cc: In function 'int main()':
a.cc:17:68: error: invalid operands of types 'long long int' and 'double' to binary 'operator%'
   17 |         long long total = modfact(w+h) / (modfact(w) * modfact(h)) % (10e9+7);
      |                           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~
      |                                        |                                  |
      |                                        long long int                      double
a.cc:18:68: error: invalid operands of types 'long long int' and 'double' to binary 'operator%'
   18 |         long long remov = modfact(a+b) / (modfact(a) * modfact(b)) % (10e9+7);
      |                           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~
      |                                        |                                  |
      |                                        long long int                      double
a.cc:19:38: error: invalid operands of types 'double' and 'double' to binary 'operator%'
   19 |         cout << (total-remov+10e9+7) % (10e9+7) << endl;
      |                 ~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~
      |                                  |          |
      |                                  double     double
Language: C++

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;

ll f[1000010],revf[1000010];

ll qpow(ll a,ll b)
{
	ll ret=1;
	while(b)
	{
		if(b&1) ret=(ret*a)%mod;
		a=(a*a)%mod;
		b>>=1;
	}
	
	return ret;
}

void init()
{
	f[0]=1; revf[0]=qpow(f[0],mod-2);
	for(ll i=1; i<1000010; i++)
	{
		f[i]=i*f[i-1]%mod;
		revf[i]=qpow(f[i],mod-2);
	}
}

ll C(ll n,ll m)
{
	return (f[n]*revf[m])%mod*revf[n-m]%mod;
}

ll count_ways(ll a,ll b,ll c,ll d)
{
	ll tot=(c-a)+(d-b);
	ll down=(c-a);
	ll ret=C(tot,down);
	return ret;
}

int main()
{
	init();
	ll h,w,a,b;
	cin>>h>>w>>a>>b;
	ll tot=count_ways(1,1,h,w);
	 
	for(ll i=1; i<=b; i++)
	{
		ll tmp=count_ways(1,1,h-a,i)*count_ways(h-a+1,i,h,w)%mod;
		while(tot<tmp)
		tot+=mod;
		tot=(tot-tmp)%mod;
	}
	 
	cout<<tot<<endl;
	return 0;
}

Compiler output:
a.cc: In function 'll qpow(ll, ll)':
a.cc:13:37: error: 'mod' was not declared in this scope; did you mean 'modf'?
   13 |                 if(b&1) ret=(ret*a)%mod;
      |                                     ^~~
      |                                     modf
a.cc:14:25: error: 'mod' was not declared in this scope; did you mean 'modf'?
   14 |                 a=(a*a)%mod;
      |                         ^~~
      |                         modf
a.cc: In function 'void init()':
a.cc:23:35: error: 'mod' was not declared in this scope; did you mean 'modf'?
   23 |         f[0]=1; revf[0]=qpow(f[0],mod-2);
      |                                   ^~~
      |                                   modf
a.cc: In function 'll C(ll, ll)':
a.cc:33:31: error: 'mod' was not declared in this scope; did you mean 'modf'?
   33 |         return (f[n]*revf[m])%mod*revf[n-m]%mod;
      |                               ^~~
      |                               modf
a.cc: In function 'int main()':
a.cc:53:70: error: 'mod' was not declared in this scope; did you mean 'modf'?
   53 |                 ll tmp=count_ways(1,1,h-a,i)*count_ways(h-a+1,i,h,w)%mod;
      |                                                                      ^~~
      |                                                                      modf
Language: C++

#include <iostream>

int main(){
  std::cout << "a" << endl;
  return 0;
}

Compiler output:
a.cc: In function 'int main()':
a.cc:4:23: error: 'endl' was not declared in this scope; did you mean 'std::endl'?
    4 |   std::cout << "a" << endl;
      |                       ^~~~
      |                       std::endl
In file included from /usr/include/c++/14/iostream:41,
                 from a.cc:1:
/usr/include/c++/14/ostream:744:5: note: 'std::endl' declared here
  744 |     endl(basic_ostream<_CharT, _Traits>& __os)
      |     ^~~~
Language: C++


ll H, W, A, B;

ll calcpat(ll hp, ll wp){
  if((hp == 1) && (wp == 1)){
    return 1;
  } else{
    if(hp == 1){
      ll ret = calcpat(hp, wp - 1) % MOD;
      return ret;
    } else if((wp == 1) || ((hp > H - A) && (wp == B + 1))){
      ll ret = calcpat(hp - 1, wp) % MOD;
      return ret;
    } else{
      ll ret = ((calcpat(hp - 1, wp) % MOD) + (calcpat(hp, wp - 1) % MOD)) % MOD;
      return ret;
    }
  }

  return 0;
}

int main(){
  cin >> H >> W >> A >> B;

  ll ans = calcpat(H, W);

  cout << ans << endl;
  
  return 0;
}

Compiler output:
a.cc:2:1: error: 'll' does not name a type
    2 | ll H, W, A, B;
      | ^~
a.cc:4:1: error: 'll' does not name a type
    4 | ll calcpat(ll hp, ll wp){
      | ^~
a.cc: In function 'int main()':
a.cc:24:3: error: 'cin' was not declared in this scope
   24 |   cin >> H >> W >> A >> B;
      |   ^~~
a.cc:24:10: error: 'H' was not declared in this scope
   24 |   cin >> H >> W >> A >> B;
      |          ^
a.cc:24:15: error: 'W' was not declared in this scope
   24 |   cin >> H >> W >> A >> B;
      |               ^
a.cc:24:20: error: 'A' was not declared in this scope
   24 |   cin >> H >> W >> A >> B;
      |                    ^
a.cc:24:25: error: 'B' was not declared in this scope
   24 |   cin >> H >> W >> A >> B;
      |                         ^
a.cc:26:3: error: 'll' was not declared in this scope
   26 |   ll ans = calcpat(H, W);
      |   ^~
a.cc:28:3: error: 'cout' was not declared in this scope
   28 |   cout << ans << endl;
      |   ^~~~
a.cc:28:11: error: 'ans' was not declared in this scope
   28 |   cout << ans << endl;
      |           ^~~
a.cc:28:18: error: 'endl' was not declared in this scope
   28 |   cout << ans << endl;
      |                  ^~~~
Language: C++


// D - いろはちゃんとマス目

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
// const int INF = 2147483647;
// const ll INF = 9223372036854775807;
const int MOD = 1e9 + 7;

class Comb {
private:
	int MOD;
	long long* fac;
	long long* finv;
	long long* inv;
public:
	// 事前にテーブルを作成
	Comb(int MAX, int MOD) {
		this->MOD = MOD;

		fac = new long long[MAX + 1];
		finv = new long long[MAX + 1];
		inv = new long long[MAX + 1];

		fac[0] = fac[1] = 1;
		finv[0] = finv[1] = 1;
		inv[1] = 1;
		for (int i = 2; i <= MAX; i++) {
			fac[i] = fac[i - 1] * i % MOD;
			inv[i] = MOD - inv[MOD%i] * (MOD / i) % MOD;
			finv[i] = finv[i - 1] * inv[i] % MOD;
		}
	}

	~Comb() {
		delete[] fac, finv, inv;
	}

	// 二項係数計算
	long long calc(int n, int k){
		if (n < k) return 0;
		if (n < 0 || k < 0) return 0;
		return fac[n] * (finv[k] * finv[n - k] % MOD) % MOD;
	}
};

ll get_n_paths(int from_h, int from_w, int to_h, int to_w, Comb& comb) {
	int dh = to_h - from_h;
	int dw = to_w - from_w;
	return comb.calc(dh + dw, dh);
}

int main() {
	int H, W, A, B;
	cin >> H >> W >> A >> B;

    Comb comb = Comb(H + W;, MOD);

    ll ans = 0;
    for (int i=B; i<W; i++) {
    	ans += get_n_paths(0, 0, H - A - 1, i, comb) * get_n_paths(H - A, i, H - 1, W - 1, comb);
    	ans %= MOD;
    }

    cout << ans << endl;

	return 0;
}

Compiler output:
a.cc: In function 'int main()':
a.cc:58:21: error: expected primary-expression before '(' token
   58 |     Comb comb = Comb(H + W;, MOD);
      |                     ^
a.cc:58:27: error: expected ')' before ';' token
   58 |     Comb comb = Comb(H + W;, MOD);
      |                     ~     ^
      |                           )
a.cc:58:28: error: expected primary-expression before ',' token
   58 |     Comb comb = Comb(H + W;, MOD);
      |                            ^
Language: C++

#include <iostream>
#include <string>
#include <vector>
using namespace std;

int main(void){
	int H,W,A,B
	cin >> H >> W >> A >> B;
	vector<vector<unsigned long long>> ans(H, vector<unsigned long long>(W));
	for(int i = 0;i < H -A; ++i){
		ans[i][0] = 1;
	}
	for(int i = H-A;i < H;++i){
		ans[i][0] = 0;
	}
	for(int i = 0; i < W-B; ++i){
		ans[0][i] = 1;
	}
	for(int i = W-B; i < W; ++i){
		ans[0][i] = 1;
	}
	for(int i = 1;i< W; ++i){
		for(int j = 1; j < H; ++j){
			if(i > W-B && j > H-A){
				ans[i][j] = 0;
			}else{
				ans[i][j] = ans[i-1][j] + ans[i][j-1];
			}
		}
	}
	cout << ans[H-1][W-1] % (1000000000 + 7);
}


Compiler output:
a.cc: In function 'int main()':
a.cc:8:9: error: expected initializer before 'cin'
    8 |         cin >> H >> W >> A >> B;
      |         ^~~
a.cc:16:30: error: 'B' was not declared in this scope
   16 |         for(int i = 0; i < W-B; ++i){
      |                              ^
a.cc:19:23: error: 'B' was not declared in this scope
   19 |         for(int i = W-B; i < W; ++i){
      |                       ^
a.cc:24:34: error: 'B' was not declared in this scope
   24 |                         if(i > W-B && j > H-A){
      |                                  ^
Language: C++

#include<iostream>
using namespace std;

typedef long long ll;

ll mod = 1e9 + 7, fac[1000000005], v[1000000005];

ll modRec(ll a, ll b) {
	if (b == 0)return 1;
	if (b % 2 == 0)return modRec((a * a) % mod, b / 2);
	return ((a % mod) * modRec((a * a) % mod, b / 2));
}

int main() {
	fac[0] = 1, v[0] = 1;
	for (int i = 1; i <= 1000000; i++) {
		fac[i] = (i * fac[i - 1]) % mod;
		v[i] = modRec(fac[i], mod - 2);
	}
	ll h, w, a, b, ans = 0; cin >> h >> w >> a >> b;
	for (ll i = b; i < w; i++) {
		ll p = i, q = h - a - 1, r = w - i - 1, s = a - 1;
		ll x = (((fac[p + q] * v[p]) % mod) * v[q]) % mod;
		x *= (((fac[r + s] * v[r]) % mod) * v[s]) % mod;
		ans = (ans + x) % mod;
	}
	cout << ans << endl;

	return 0;
}

Compiler output:
/tmp/cc7xQJ3J.o: in function `main':
a.cc:(.text+0xd2): relocation truncated to fit: R_X86_64_PC32 against symbol `v' defined in .bss section in /tmp/cc7xQJ3J.o
a.cc:(.text+0x171): relocation truncated to fit: R_X86_64_PC32 against symbol `v' defined in .bss section in /tmp/cc7xQJ3J.o
a.cc:(.text+0x24f): relocation truncated to fit: R_X86_64_PC32 against symbol `v' defined in .bss section in /tmp/cc7xQJ3J.o
a.cc:(.text+0x279): relocation truncated to fit: R_X86_64_PC32 against symbol `v' defined in .bss section in /tmp/cc7xQJ3J.o
a.cc:(.text+0x2c2): relocation truncated to fit: R_X86_64_PC32 against symbol `v' defined in .bss section in /tmp/cc7xQJ3J.o
a.cc:(.text+0x2ec): relocation truncated to fit: R_X86_64_PC32 against symbol `v' defined in .bss section in /tmp/cc7xQJ3J.o
collect2: error: ld returned 1 exit status
Language: Java

package main.java.tasks;

import java.util.Scanner;
import java.io.PrintWriter;

public class ABC042DIrohaandaGrid {

  public void solve(int testNumber, Scanner in, PrintWriter out) {
    int h = in.nextInt();
    int w = in.nextInt();
    int a = in.nextInt();
    int b = in.nextInt();
    ModComb mc = new ModComb(200005);
    mc.makeFac();
    ModInt res = new ModInt(0);
    for (int i = 0; i < h - a; i++) {
      res = res.add(mc.combFac(b - 1 + i, i).mul(mc.combFac(w - b - 1 + h - 1 - i, h - 1 - i)));
    }
    out.println(res.toString());
  }
}


Compiler output:
Main.java:6: error: class ABC042DIrohaandaGrid is public, should be declared in a file named ABC042DIrohaandaGrid.java
public class ABC042DIrohaandaGrid {
       ^
Main.java:13: error: cannot find symbol
    ModComb mc = new ModComb(200005);
    ^
  symbol:   class ModComb
  location: class ABC042DIrohaandaGrid
Main.java:13: error: cannot find symbol
    ModComb mc = new ModComb(200005);
                     ^
  symbol:   class ModComb
  location: class ABC042DIrohaandaGrid
Main.java:15: error: cannot find symbol
    ModInt res = new ModInt(0);
    ^
  symbol:   class ModInt
  location: class ABC042DIrohaandaGrid
Main.java:15: error: cannot find symbol
    ModInt res = new ModInt(0);
                     ^
  symbol:   class ModInt
  location: class ABC042DIrohaandaGrid
5 errors
Language: C++

#include <iostream>
#include <cstdio>
#include <string>
#include <algorithm>
#include <utility>
#include <cmath>
#include <vector>
#include <queue>
#include <set>
#include <map>
#include <functional>
using namespace std;
typedef long long ll;
typedef vector<ll> vl;
typedef vector<vector<ll>> vvl;
typedef vector<vector<pair<ll, ll>>> vvpll;
#define rep(i, n) for(ll i = 0; i < n; i++)
#define exrep(i, a, b) for(ll i = a; i <= b; i++)
#define out(x) cout << x << endl
#define exout(x) printf("%.10f\n", x)
#define chmax(x, y) x = max(x, y)
#define chmin(x, y) x = min(x, y)
#define all(a) a.begin(), a.end()
#define rall(a) a.rbegin(), a.rend()
#define pb push_back
#define re0 return 0
const ll mod = 1000000007;
const ll INF = 1e16;
const ll MAX_N = 100010;

#include <iostream>
#include <cstdio>
#include <string>
#include <algorithm>
#include <utility>
#include <cmath>
#include <vector>
#include <queue>
#define rep(i, n) for(int i = 0; i < n; i++)
using namespace std;
typedef long long ll;
ll mod = 1000000007;
const ll MAX_N = 100010;

// aのn乗を求める。計算量はO(logn)
ll modpow(ll a, ll n) {
    if(n == 0) {
        return 1;
    }
    if(n%2 == 1) {
        return (a * modpow(a, n-1))%mod;
    }
    return (modpow(a, n/2) * modpow(a, n/2))%mod;
}

ll inv(ll a) {
    return modpow(a, mod-2);
}

ll fact[MAX_N];
ll invfact[MAX_N];

// main関数でinit()を呼び出してからComb()を使用する
void init() {
    fact[0] = 1;
    invfact[0] = 1;
    for(ll i = 1; i < MAX_N; i++) {
        fact[i] = (i*fact[i-1])%mod;
        invfact[i] = inv(fact[i]);
    }
}
 
ll Comb(ll n, ll r) {
    if(r < 0 || n < 0 || n < r) {
        return 0;
    }
    ll res = fact[n];
    res = (res * invfact[r])%mod;
    res = (res * invfact[n-r])%mod;
    return res;
}
 
int main() {
    ll h, w, a, b;
    cin >> h >> w >> a >> b;
 
    init();
    
    ll ans = 0;
    for(ll i = b; i < w; i++) {
        ans += (Comb(h-a-1+i, h-a-1) * Comb(w+a-2-i, w-1-i))%mod;
        ans %= mod;
    }
 
    out(ans);
    re0;
}

Compiler output:
a.cc:39:9: warning: "rep" redefined
   39 | #define rep(i, n) for(int i = 0; i < n; i++)
      |         ^~~
a.cc:17:9: note: this is the location of the previous definition
   17 | #define rep(i, n) for(ll i = 0; i < n; i++)
      |         ^~~
a.cc:42:4: error: conflicting declaration 'll mod'
   42 | ll mod = 1000000007;
      |    ^~~
a.cc:27:10: note: previous declaration as 'const ll mod'
   27 | const ll mod = 1000000007;
      |          ^~~
a.cc:43:10: error: redefinition of 'const ll MAX_N'
   43 | const ll MAX_N = 100010;
      |          ^~~~~
a.cc:29:10: note: 'const ll MAX_N' previously defined here
   29 | const ll MAX_N = 100010;
      |          ^~~~~
Language: C++

#include<bits/stdc++.h>
using namespace std;

//#define Fast ios::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
#define int long long
typedef vector<int>Vl;
typedef pair<int,int>PII;
typedef vector<PII>Vll;
typedef vector<pair<int,pair<int,int> > >Vlll;
typedef priority_queue<int>PQL;
typedef map<int,int>MP;
#define S second
#define F first
#define mp make_pair
#define ms(x,y) memset(x,y,sizeof(x))
#define pb push_back
#define sl(n) scanf("%lld",&n)
#define pl(n) printf("%lld",n)
const int mod=1e9+7;
const int sze=1e5+2;
int matrix[sze][sze];
int R,C,A,B;
int recur(int i,int j){
	if(i==R && j==C)return 1;
	else if(i>R || j>C)return 0;
	int sum1=0,sum2=0;
	if(matrix[i+1][j]==1)sum1+=recur(i+1,j);
	if(matrix[i][j+1]==1)sum2+=recur(i,j+1);
	return sum1+sum2;
}
signed main(){
  sl(R);sl(C);sl(A);sl(B);
  ms(matrix,0);
  for(int i=1;i<=R;i++)
    for(int j=1;j<=C;j++)matrix[i][j]=1;
    
  for(int i=R-A+1;i<=R;i++)
	for(int j=1;j<=B;j++)matrix[i][j]=0;
	
	
  cout<<recur(1,1)<<endl; 
 
  return 0;
}


Compiler output:
/tmp/cckeV4re.o: in function `recur(long long, long long)':
a.cc:(.text+0x13): relocation truncated to fit: R_X86_64_PC32 against symbol `R' defined in .bss section in /tmp/cckeV4re.o
a.cc:(.text+0x20): relocation truncated to fit: R_X86_64_PC32 against symbol `C' defined in .bss section in /tmp/cckeV4re.o
a.cc:(.text+0x37): relocation truncated to fit: R_X86_64_PC32 against symbol `R' defined in .bss section in /tmp/cckeV4re.o
a.cc:(.text+0x44): relocation truncated to fit: R_X86_64_PC32 against symbol `C' defined in .bss section in /tmp/cckeV4re.o
/tmp/cckeV4re.o: in function `main':
a.cc:(.text+0x114): relocation truncated to fit: R_X86_64_PC32 against symbol `R' defined in .bss section in /tmp/cckeV4re.o
a.cc:(.text+0x132): relocation truncated to fit: R_X86_64_PC32 against symbol `C' defined in .bss section in /tmp/cckeV4re.o
a.cc:(.text+0x150): relocation truncated to fit: R_X86_64_PC32 against symbol `A' defined in .bss section in /tmp/cckeV4re.o
a.cc:(.text+0x16e): relocation truncated to fit: R_X86_64_PC32 against symbol `B' defined in .bss section in /tmp/cckeV4re.o
a.cc:(.text+0x1ef): relocation truncated to fit: R_X86_64_PC32 against symbol `C' defined in .bss section in /tmp/cckeV4re.o
a.cc:(.text+0x201): relocation truncated to fit: R_X86_64_PC32 against symbol `R' defined in .bss section in /tmp/cckeV4re.o
a.cc:(.text+0x20e): additional relocation overflows omitted from the output
collect2: error: ld returned 1 exit status
Language: C++

#include <bits/stdc++.h>
using namespace std;

typedef long long  ll;

ll MOD = 1000000007;
ll INF = 100000000000000;
double PI = 3.1415926535;

template<typename T>
void remove(std::vector<T>& vector, unsigned int index)
{
    vector.erase(vector.begin() + index);
}

using Graph = vector<vector<ll>>;

ll minv[100100];

ll modpow(ll a,ll n,ll m){//modpow(a,n,m) := a ^ n (mod m)
  ll res = 1;
  while(n > 0){
    if(n & 1)res = res * a % m;
    a = a * a % m;
    n >>= 1;
  }
  return res;
}

ll modinv(ll a,ll p){//modinv(a,p) := pを法とするaの逆元(※pは素数でなければならない)
    if(minv[a] != -1){
      return minv[a];
    }
    ll res = modpow(a,p-2,p);
    minv[a] = res;
    return res;
}

ll modCON(ll n,ll r,ll m){
   ll res = 1;
   for(int i = 1;i <= n;i++){
      res *= i;
      res %= m;
   }
   for(int i = 1;i <= r;i++){
      res *= modinv(i,m);
      res %= m;
   }
   for(int i = 1;i <= n-r;i++){
      res *= modinv(i,m);
      res %= m;
   }
   return res;
}

Compiler output:
/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/14/../../../x86_64-linux-gnu/Scrt1.o: in function `_start':
(.text+0x17): undefined reference to `main'
collect2: error: ld returned 1 exit status
Language: C++

#include<iostream>

using namespace std;

#define MODE 1000000007

int factorial(int start, int end){
  int answer = 1;
  if (end < start) return 1;
  
  for(int i=start; i <= end; i++){
    answer *= i%MODE;
    answer = answer%MODE;
  }
  //cout << "answer =" << answer << endl;
  return answer;
}

int my_course(int h, int w){
  int answer;
  answer = (factorial(h+1, h+w)/factorial(1,w))%MODE;
  return answer;
}

int main(){
  int h,w,a,b,total,colision;
  cin >> h >> w >> a >> b;
  
  total = my_course(h-1,w-1);
  
  colision = 0;
  for(int i=0; i < b; i++ ){
    colision += my_course(i, h-1-a) * my_course(w-1-i, a-1);
    colisoion = colision%MODE;
  } 
  
  cout << total - colision;
  
  return 0;
}






Compiler output:
a.cc: In function 'int main()':
a.cc:34:5: error: 'colisoion' was not declared in this scope; did you mean 'colision'?
   34 |     colisoion = colision%MODE;
      |     ^~~~~~~~~
      |     colision
Language: C++

#include<bits/stdc++.h>
using namespace std;

typedef long long ll;

bool path(vector<vector<int> > v, a, b)
{
  	vector<vector<bool> > vis( a , vector<int> (b, false));
	queue<pair<int, int> > q;
  	q.push(make_pair(0, 0));
  	int r[2] = {0, 1};
  	int c[2] = {1, 0};
  	int count = 0;
  	while(!q.empty())
    {
    	pair<int, int> t = q.front();
      	q.pop();
      	int curx = t.first;
      	int cury = t.second;
      	vis[curx][cury] == true;
      	if(curx == a-1 && cury == b-1)
          	count++;
      	for(int i = 0; i < 2; i++)
        {
        	int nextx = curx + r[i];
          	int nexty = cury + c[i];
          	if((nextx >= 0 && nextx < a) && (nexty >= 0 && nexty < b) && !vis[nextx][nexty] && v[nextx][nexty] == 0)
            {
            	vis[nextx][nexty] = true;
              	q.push(make_pair(nextx, nexty));
            }
        }
    }
  	return (count % (10e9 + 7));
}

int main()
{
  	int a, b, c, d;
  	cin>>a>>b>>c>>d;
  	vector<vector<int> > v( a , vector<int> (b, 0));
  	int rs = a-c, rf = a-1, cs = 0, cf = b-d;
  	for(int i = rs; i <= rf; i++)
    	for(int j = cs; j <= cf; j++)
          	v[i][j] = 1;
  	ll res = path(v, a, b);
  	cout<<res<<"\n";
	return 0;
}

Compiler output:
a.cc:6:35: error: 'a' has not been declared
    6 | bool path(vector<vector<int> > v, a, b)
      |                                   ^
a.cc:6:38: error: 'b' has not been declared
    6 | bool path(vector<vector<int> > v, a, b)
      |                                      ^
a.cc: In function 'bool path(std::vector<std::vector<int> >, int, int)':
a.cc:8:36: error: 'a' was not declared in this scope
    8 |         vector<vector<bool> > vis( a , vector<int> (b, false));
      |                                    ^
a.cc:8:53: error: 'b' was not declared in this scope
    8 |         vector<vector<bool> > vis( a , vector<int> (b, false));
      |                                                     ^
a.cc:34:23: error: invalid operands of types 'int' and 'double' to binary 'operator%'
   34 |         return (count % (10e9 + 7));
      |                 ~~~~~ ^ ~~~~~~~~~~
      |                 |             |
      |                 int           double
Language: C++

#include <bits/stdc++.h>
using namespace std;
int kaijo(int x){
  if (x>0) return x*kaijo(x-1);
  else return 1;
}
int main(){
  int h,w,a,b;
  cin >> h >> w >> a >> b;
  vector<int>vec(100000)
    int ans;
  for(int i=0;i<w-b;i++){
    vec.at(i) = kaijo(h-a+b+i)/kaijo(h-a-1)/kaijo(b+i+1);
    vec.at(i) = vec.at(i)*kaijo(w+a-b-2-i)/kaijo(w-b-1-i)/kaijo(a-1);
    ans += vec.at(i);
  }
  cout << ans % 1000000007 << endl;
}

Compiler output:
a.cc: In function 'int main()':
a.cc:11:5: error: expected ',' or ';' before 'int'
   11 |     int ans;
      |     ^~~
a.cc:15:5: error: 'ans' was not declared in this scope; did you mean 'abs'?
   15 |     ans += vec.at(i);
      |     ^~~
      |     abs
a.cc:17:11: error: 'ans' was not declared in this scope; did you mean 'abs'?
   17 |   cout << ans % 1000000007 << endl;
      |           ^~~
      |           abs
Language: C++

#include <bits/stdc++.h>
using namespace std;
int !(int x){
  if (x>0) return x*!(x-1);
  else return 1;
}
int main(){
  cin >> h >> w >> a >> b;
  vector<int>vec(100000)
    int ans;
  for(int i=0;i<w-b;i++){
    vec.at(i) = !(h-a+b+i)/!(h-a-1)/!(b+i+1);
    vec.at(i) = vec.at(i)*!(w+a-b-2-i)/!(w-b-1-i)/!(a-1);
    ans += vec.at(i);
  }
  cout << ans % 1000000007 << endl;
}

Compiler output:
a.cc:3:5: error: expected unqualified-id before '!' token
    3 | int !(int x){
      |     ^
a.cc: In function 'int main()':
a.cc:8:10: error: 'h' was not declared in this scope
    8 |   cin >> h >> w >> a >> b;
      |          ^
a.cc:8:15: error: 'w' was not declared in this scope
    8 |   cin >> h >> w >> a >> b;
      |               ^
a.cc:8:20: error: 'a' was not declared in this scope
    8 |   cin >> h >> w >> a >> b;
      |                    ^
a.cc:8:25: error: 'b' was not declared in this scope
    8 |   cin >> h >> w >> a >> b;
      |                         ^
a.cc:10:5: error: expected ',' or ';' before 'int'
   10 |     int ans;
      |     ^~~
a.cc:14:5: error: 'ans' was not declared in this scope; did you mean 'abs'?
   14 |     ans += vec.at(i);
      |     ^~~
      |     abs
a.cc:16:11: error: 'ans' was not declared in this scope; did you mean 'abs'?
   16 |   cout << ans % 1000000007 << endl;
      |           ^~~
      |           abs
Language: C++

#include <bits/stdc++.h>
#define REP(i, n) for(ll i = 0; i < (ll)n; i++)
#define FOR(i, a, b) for(ll i = (a); i < (ll)b; i++)
#define ALL(obj) (obj).begin(), (obj).end()
#define INF (1ll << 60)
#define sz(x) int(x.size())
using namespace std;
typedef long long ll;
using vl = vector<ll>;
using vvl = vector<vl>;
typedef double db;
typedef string str;
typedef pair<ll, ll> p;
constexpr int MOD = 1000000007;
using ll = long long;
template <class T> inline bool chmin(T &a, T b) {
    if(a > b) {
        a = b;
        return true;
    }
    return false;
}
template <class T> inline bool chmax(T &a, T b) {
    if(a < b) {
        a = b;
        return true;
    }
    return false;
}

void print(const std::vector<int> &v) {
    std::for_each(v.begin(), v.end(), [](int x) { std::cout << x << " "; });
    std::cout << std::endl;
}
ll H, W, A, B;
const int MAX = 510000;
long long fac[MAX], finv[MAX], inv[MAX];

// テーブルを作る前処理
void COMinit() {
    fac[0] = fac[1] = 1;
    finv[0] = finv[1] = 1;
    inv[1] = 1;
    for(int i = 2; i < MAX; i++) {
        fac[i] = fac[i - 1] * i % MOD;
        inv[i] = MOD - inv[MOD % i] * (MOD / i) % MOD;
        finv[i] = finv[i - 1] * inv[i] % MOD;
    }
}

// 二項係数計算
long long COM(int n, int k) {
    if(n < k)
        return 0;
    if(n < 0 || k < 0)
        return 0;
    return fac[n] * (finv[k] * finv[n - k] % MOD) % MOD;
}

int main() {
    cin >> H >> W >> A >> B;
    // H times W
    //　右か下しかない
    // 下からA個いないかつ
    // 左からB個いないへは移動することができない
    ll ans = 0LL;
    ll bf = 0LL;
    COMinit() for(int x = 0; x < W - B; x++) {
        ll tmp = COM(H - A - 1 + B + x, B + x);
        ll diff = tmp - bf;
        diff %= MOD;
        ans += diff * COM(A + W - 1 - B - x, A);
        bf = tmp;
        ans %= MOD;
    }

    cout << ans << endl;
    return 0;
}

Compiler output:
a.cc: In function 'int main()':
a.cc:68:14: error: expected ';' before 'for'
   68 |     COMinit() for(int x = 0; x < W - B; x++) {
      |              ^~~~
      |              ;
a.cc:68:30: error: 'x' was not declared in this scope
   68 |     COMinit() for(int x = 0; x < W - B; x++) {
      |                              ^
Language: C++

#include <iostream>
#include <vector>

using namespace std;

unsigned long long int D;

int main(){
  D = 1000000007LL;
  unsigned long long int W, H, A, B;
  cin >> W >> H >> A >> B;
  
  unsigned long long int G[H][W]// = {{0LL}};
  for(long long int y = 0; y < H; y++){
    for(long long int x = 0; x < W; x++){
      if(x == 0 && y == 0) G[y][x] = 1LL;
      else if(x < B && y >= H - A) G[y][x] = 0LL;
      else if(x == B && y >= H - A && y >= 1) G[y][x] = G[y-1][x];
      else if(x == 0 || y == 0) G[y][x] = 1LL;
      else if(x >= 1 && y >= 1) G[y][x] = G[y-1][x] + G[y][x-1] % D;
    }
  }
  cout << G[H-1][W-1];
  
  //for(int y = 0; y < H; y++){
  //  for(int x = 0; x < W; x++){
  //    cout << G[y][x];
  //  }
  //  cout << endl;
  //}
}


Compiler output:
a.cc: In function 'int main()':
a.cc:14:3: error: expected initializer before 'for'
   14 |   for(long long int y = 0; y < H; y++){
      |   ^~~
a.cc:14:28: error: 'y' was not declared in this scope
   14 |   for(long long int y = 0; y < H; y++){
      |                            ^
a.cc:23:11: error: 'G' was not declared in this scope
   23 |   cout << G[H-1][W-1];
      |           ^
Language: C++

#include <iosteam>
#include <vector>

using namespace std;

long long int D;

int main(){
  D = 1000000007LL
  int W, H, A, B;
  cin >> W >> H >> A >> B;
  
  long long int G[H][W] = {0};
  for(int y = 0; y < H; y++){
    for(int x = 0; x < W; x++){
      if(x == 0 || y == 0) G[y][x] = 1LL;
      else if(x + 1 + A > W || y + 1 + B > H) continue;
      else if(x >= 1 && y >= 1) G[y][x] = (G[y][x-1] + G[y-1][x]) % D;
    }
  }
  cout << G[H-1][W-1];
}


Compiler output:
a.cc:1:10: fatal error: iosteam: No such file or directory
    1 | #include <iosteam>
      |          ^~~~~~~~~
compilation terminated.
Language: C++

#include <bits/stdc++.h>
#define REP(i, n) for(ll i = 0; i < (ll)n; i++)
#define FOR(i, a, b) for(ll i = (a); i < (ll)b; i++)
#define ALL(obj) (obj).begin(), (obj).end()
#define INF (1ll << 60)
#define sz(x) int(x.size())
using namespace std;
typedef long long ll;
using vl = vector<ll>;
using vvl = vector<vl>;
typedef double db;
typedef string str;
typedef pair<ll, ll> p;
constexpr int MOD = 1000000007;
using ll = long long;
template <class T> inline bool chmin(T &a, T b) {
    if(a > b) {
        a = b;
        return true;
    }
    return false;
}
template <class T> inline bool chmax(T &a, T b) {
    if(a < b) {
        a = b;
        return true;
    }
    return false;
}

void print(const std::vector<int> &v) {
    std::for_each(v.begin(), v.end(), [](int x) { std::cout << x << " "; });
    std::cout << std::endl;
}
ll H, W, A, B;
ll modpow(ll a, ll p) {
    if(p == 0)
        return 1;
    if(p % 2 == 0) {
        ll halfp = p / 2;
        ll half = modpow(a, halfp);
        return half * half % MOD;
    } else {
        return a * modpow(a, p - 1) % MOD;
    }
}

ll calcComb(ll a, ll b) {
    if(b < 0) {
        return 0;
    }
    if(a < 0) {
        return 0;
    }
    if(a < b) {
        return 0;
    }
    if(b > a - b) {
        return calcComb(a, a - b);
    }
    ll ansMul = 1;
    ll ansDiv = 1;
    REP(i, b) {
        ansMul *= (a - i);
        ansDiv *= (i + 1);
        ansMul %= MOD;
        ansDiv %= MOD;
    }
    ll ans = ansMul * modpow(ansDiv, MOD - 2);
    ans %= MOD;
    return ans;
}

int main() {
    cin >> H >> W >> A >> B;
    // H times W
    //　右か下しかない
    // 下からA個いないかつ
    // 左からB個いないへは移動することができない
    ll ans = 0LL;
    ll bf = 0LL;
    for(int x = 0; x < W - B; x++) {
        ll tmp = calcComb(H - A - 1 + B + x, B + x);
        ans += (tmp - bf) * calcComb(A + W - 1 - B - x, A);
    }
    bf = tmp;
    ans %= MOD;
}

cout << ans << endl;
return 0;
}

Compiler output:
a.cc: In function 'int main()':
a.cc:86:10: error: 'tmp' was not declared in this scope; did you mean 'tm'?
   86 |     bf = tmp;
      |          ^~~
      |          tm
a.cc: At global scope:
a.cc:90:1: error: 'cout' does not name a type
   90 | cout << ans << endl;
      | ^~~~
a.cc:91:1: error: expected unqualified-id before 'return'
   91 | return 0;
      | ^~~~~~
a.cc:92:1: error: expected declaration before '}' token
   92 | }
      | ^
Language: C++

#include <bits/stdc++.h>
using namespace std;
typedef long long int ll;
#define F(i,a,b) for(int i = (int)(a); i <= (int)(b); i++)
#define RF(i,a,b) for(int i = (int)(a); i >= (int)(b); i--)
#define MOD 1000000007
int main()
{
    int M,N,P,_i,_j;

    //Take input the number of rows, columns and blocked cells
    cin>>M>>N>>A>>B;
  	int p=A*B;

    //declaring a Grid array which stores the number of paths
    ll Grid[M+1][N+1];

    //Note that we'll be using 1-based indexing here.
    //initialize all paths initially as 0
    memset(Grid, 0, sizeof(Grid));

    F(i,0,P-1)
    {
        //Take in the blocked cells and mark them with a special value(-1 here)
        cin>>_i>>_j;
        Grid[_i][_j] = -1;
    }

    // If the initial cell is blocked, there is no way of moving anywhere
    if(Grid[1][1] == -1)
    {
        printf("0");
        return 0;
    }

    // Initializing the leftmost column
    //Here, If we encounter a blocked cell, there is no way of visiting any cell
    //directly below it.(therefore the break)
    F(i,1,M)
    {
        if(Grid[i][1] == 0) Grid[i][1] = 1LL;
        else break;
    }

    //Similarly initialize the topmost row.
    F(i,2,N)
    {
        if(Grid[1][i] == 0) Grid[1][i] = 1LL;
        else break;
    }

    //Now the recurrence part
    //The only difference is that if a cell has been marked as -1,
    //simply ignore it and continue to the next iteration.
    F(i,2,M)
    {
        F(j,2,N)
        {
            if(Grid[i][j] == -1) continue;

            //While adding the number of ways from the left and top cells,
            //check that they are reachable,i.e. they aren't blocked

            if(Grid[i-1][j] > 0) Grid[i][j] = (Grid[i][j] + Grid[i-1][j] + MOD)%MOD;
            if(Grid[i][j-1] > 0) Grid[i][j] = (Grid[i][j] + Grid[i][j-1] + MOD)%MOD;
        }
    }

    //If the final cell is blocked, output 0, otherwise the answer
    printf("%lld",(Grid[M][N] >= 0 ? Grid[M][N] : 0));
    return 0;
}

Compiler output:
a.cc: In function 'int main()':
a.cc:12:16: error: 'A' was not declared in this scope
   12 |     cin>>M>>N>>A>>B;
      |                ^
a.cc:12:19: error: 'B' was not declared in this scope
   12 |     cin>>M>>N>>A>>B;
      |                   ^
Language: C++

h, w, a, b = map(int, input().split())
res = 0
kai = min(w - b, h - a)
mod = 10 ** 9 + 7

kaijo = [0] * (h + w + 1)
kaijo[0] = 1
for i in range(1, h + w + 1):
    kaijo[i] = (kaijo[i - 1] * i) % mod
gyaku = [0] * (h + w + 1)
gyaku[h + w] = pow(kaijo[h + w], mod - 2, mod)
for i in range(h + w, 0, -1):
    gyaku[i - 1] = (gyaku[i] * i) % mod


def conb(x, k):
    return (kaijo[x] * gyaku[k] * gyaku[x - k]) % mod


conb1 = conb(h - a - 1 + b, b)
conb2 = conb(a + w - b - 1, a)
combi = conb1 * conb2
res = combi

for i in range(1, kai):
    res += conb(h - a - 1 + b, b + i) * conb(a + w - b - 1, a + i)

res %= mod
print(int(res))


Compiler output:
a.cc:1:1: error: 'h' does not name a type
    1 | h, w, a, b = map(int, input().split())
      | ^
Language: C++

#include <bits/stdc++.h>
using namespace std;
#define rep(i,n) for(ll i=0; i<n; i++)
typedef long long ll;
typedef long long unsigned int llu;
ll MOD = 1000000007;
ll INF = 1000000009;

ll dp[h+10][w+10];

void solve(){
    int h,w,a,b;
    cin >> h >> w >> a >> b;
    /*
    ...........
    ...........
    ...........
    ###........
    ###........
    dp[i][j](i=h-a~h-1,j=0~b-1)
    */
    dp[0][0]=1;
    rep(i,h){
        rep(j,w){
            if(h-a<=i&&i<=h-1&&0<=j&&j<=b-1){
                dp[i][j]=0;
            }
            else{
                dp[i][j]=(dp[i-1][j]+dp[i][j-1])%MOD;
            }
        }
    }
    cout << dp[h-1][w-1] << endl;
}

int main(){
  cin.tie(0);
  ios::sync_with_stdio(false);
  solve();
  return 0;
}



Compiler output:
a.cc:9:7: error: 'h' was not declared in this scope
    9 | ll dp[h+10][w+10];
      |       ^
a.cc:9:13: error: 'w' was not declared in this scope
    9 | ll dp[h+10][w+10];
      |             ^
a.cc: In function 'void solve()':
a.cc:22:5: error: 'dp' was not declared in this scope; did you mean 'dup'?
   22 |     dp[0][0]=1;
      |     ^~
      |     dup
Language: C++

#include <bits/stdc++.h>
using namespace std;
typedef ll long long;
#define For(i,n,k) for(ll i=(n);i<(k);i++)
ll h,w,a,b;
bool Main(){
    cin>>h>>w>>a>>b;
    ll vec[100000][100000];
    for(int i=0;i<h-a;i++){
        vec[i][0]=1;
    }
    for(int i=h-a;i<h;i++){
        vec[i][0]=0;
    }
    for(int j=0;j<w;j++){
        vec[0][j]=1;
    }
    for(int i=1;i<h;i++){
        for(int j=1;j<w;j++){
            if(i<h-a||j>=b){
                vec[i][j]=(vec[i-1][j]+vec[i][j-1])%1000000007;
            }
            else{
                vec[i][j]=0;
            }
        }
    }
  cout<<vec[h-1][w-1]<<endl;
}
int main(){
    Main();
    return 0;
}

Compiler output:
a.cc:3:9: error: 'll' does not name a type
    3 | typedef ll long long;
      |         ^~
a.cc:5:1: error: 'll' does not name a type
    5 | ll h,w,a,b;
      | ^~
a.cc: In function 'bool Main()':
a.cc:7:10: error: 'h' was not declared in this scope
    7 |     cin>>h>>w>>a>>b;
      |          ^
a.cc:7:13: error: 'w' was not declared in this scope
    7 |     cin>>h>>w>>a>>b;
      |             ^
a.cc:7:16: error: 'a' was not declared in this scope
    7 |     cin>>h>>w>>a>>b;
      |                ^
a.cc:7:19: error: 'b' was not declared in this scope
    7 |     cin>>h>>w>>a>>b;
      |                   ^
a.cc:8:5: error: 'll' was not declared in this scope
    8 |     ll vec[100000][100000];
      |     ^~
a.cc:10:9: error: 'vec' was not declared in this scope
   10 |         vec[i][0]=1;
      |         ^~~
a.cc:13:9: error: 'vec' was not declared in this scope
   13 |         vec[i][0]=0;
      |         ^~~
a.cc:16:9: error: 'vec' was not declared in this scope
   16 |         vec[0][j]=1;
      |         ^~~
a.cc:21:17: error: 'vec' was not declared in this scope
   21 |                 vec[i][j]=(vec[i-1][j]+vec[i][j-1])%1000000007;
      |                 ^~~
a.cc:24:17: error: 'vec' was not declared in this scope
   24 |                 vec[i][j]=0;
      |                 ^~~
a.cc:28:9: error: 'vec' was not declared in this scope
   28 |   cout<<vec[h-1][w-1]<<endl;
      |         ^~~
a.cc:29:1: warning: no return statement in function returning non-void [-Wreturn-type]
   29 | }
      | ^
Language: C++

#include <bits/stdc++.h>
using namespace std;

#define LL long long
#define REP(i, n) for(LL i = 0; i < (int)(n); i++)
#define FOR(i,a,b) for(LL i=(a);i<(b);++i)
#define ALL(x) (x).begin(),(x).end()
const int IINF = 1e9;
const LL LINF = 1e18;
const LL mod = 1e9+7;

LL add(LL x, LL y) {
    return (x%mod) + (y%mod);
}
LL sub(LL x, LL y) {
    return ((x%mod) - (y%mod) + mod)%mod;
}
LL mul(LL x, LL y) {
    return ((x%mod)*(y%mod))%mod;
}
LL pw(LL x, LL y) {
    LL res = 1;
    while(y != 0) {
        if(y%2) {
            res = mul(x, res);
            y--;
        }else{
            x = mul(x, x);
            y /= 2;
        }
    }
    return res;
}
LL inv(LL x) {
    return pw(x, mod - 2);
}

int main() {
    LL H, W, A, B;
    cin >> H >> W >> A >> B;
    assert(false);
    cout << res << endl;
    return 0;
}


Compiler output:
a.cc: In function 'int main()':
a.cc:42:13: error: 'res' was not declared in this scope
   42 |     cout << res << endl;
      |             ^~~
Language: C++

#include <bits/stdc++.h>
using namespace std;

#define LL long long
#define REP(i, n) for(LL i = 0; i < (int)(n); i++)
#define FOR(i,a,b) for(LL i=(a);i<(b);++i)
#define ALL(x) (x).begin(),(x).end()
const int IINF = 1e9;
const LL LINF = 1e18;
const LL mod = 1e9+7;

LL add(LL x, LL y) {
    return (x%mod) + (y%mod);
}
LL sub(LL x, LL y) {
    return ((x%mod) - (y%mod) + mod)%mod;
}
LL mul(LL x, LL y) {
    return ((x%mod)*(y%mod))%mod;
}
LL pw(LL x, LL y) {
    LL res = 1;
    while(y != 0) {
        if(y%2) {
            res = mul(x, res);
            y--;
        }else{
            x = mul(x, x);
            y /= 2;
        }
    }
    return res;
}
LL inv(LL x) {
    return pw(x, mod - 2);
}

int main() {
    LL H, W, A, B;
    cin >> H >> W >> A >> B;

    vector<LL> fact(H + W + 1, 1);
    FOR(i, 1, H + W + 1) {
        fact[i] = mul(i, fact[i - 1]);
    }

    LL res = 0;
    REP(i, H - A) {
        LL d1 = mul(mul(fact[i + B - 1], inv(fact[i])), inv(fact[B - 1]));
        LL d2 = mul(mul(fact[H - i - 1 + d], inv(fact[H - i - 1])), inv(fact[W - B - 1]));
        res = add(res, mul(d1, d2));
    }
    cout << res << endl;
    return 0;
}


Compiler output:
a.cc: In function 'int main()':
a.cc:50:42: error: 'd' was not declared in this scope; did you mean 'd2'?
   50 |         LL d2 = mul(mul(fact[H - i - 1 + d], inv(fact[H - i - 1])), inv(fact[W - B - 1]));
      |                                          ^
      |                                          d2
Language: C++

#include<bits/stdc++.h>
#define mode 1e9+7
using namespace std;

int main(){
  int n, m, a, b;
  cin >> n >> m >> a >> b;
  ll dp[n][m];
  dp[0][0] =  0;
  for(int i=0; i<=n; i++) dp[i][0] = 0;
  for(int j=0; j<=m; j++) dp[0][j] = 0;
  for(int i=1; i<=n; i++){
    for(int j=1; j<=m; j++){
      if(i > (n - a) && j <= b) dp[i][j] = 0;
      else{
      dp[i][j] = dp[i-1][j]+dp[i][j-1];
      dp[i][j] %= mod;}
    }
  }
  cout << (int)dp[n][m] << endl;
}


Compiler output:
a.cc: In function 'int main()':
a.cc:8:3: error: 'll' was not declared in this scope
    8 |   ll dp[n][m];
      |   ^~
a.cc:9:3: error: 'dp' was not declared in this scope; did you mean 'dup'?
    9 |   dp[0][0] =  0;
      |   ^~
      |   dup
a.cc:17:19: error: 'mod' was not declared in this scope; did you mean 'modf'?
   17 |       dp[i][j] %= mod;}
      |                   ^~~
      |                   modf
Language: C++

#include<bits/stdc++.h>
#define mode 1e9+7
using namespace std;

int main(){
  int n, m, a, b;
  cin >> n >> m >> a >> b;
  int dp[n][m];
  dp[0][0] =  0;
  for(int i=0; i<=n; i++) dp[i][0] = 0;
  for(int j=0; j<=m; j++) dp[0][j] = 0;
  for(int i=1; i<=n; i++){
    for(int j=1; j<=m; j++){
      if(i > (n - a) && j <= b) dp[i][j] = 0;
      else{
      dp[i][j] = dp[i-1][j]+dp[i][j-1];
      dp[i][j] %= mode;}
    }
  }
  cout << dp[n][m] << endl;
}


Compiler output:
a.cc: In function 'int main()':
a.cc:17:16: error: invalid operands of types 'int' and 'double' to binary 'operator%'
   17 |       dp[i][j] %= mode;}
      |                ^
a.cc:17:16: note:   in evaluation of 'operator%=(int, double)'
Language: C++

#include<bits/stdc++.h>
#define mode 1e9+7
using namespace std;

int main(){
  int n, m, a, b;
  cin >> n >> m >> a >> b;
  int dp[n][m];
  dp[0][0] =  0;
  for(int i=0; i<=n; i++) dp[i][0] = 0;
  for(int j=0; j<=m; j++) dp[0][j] = 0;
  for(int i=1; i<=n; i++){
    for(int j=1; j<=m; j++){
      if(i > (n - a) && j <= b) dp[i][j] = 0;
      else{
      dp[i][j] = dp[i-1][j]+dp[i][j-1];
      dp[i][j] %= mod;}
    }
  }
  cout << dp[n][m] << endl;
}


Compiler output:
a.cc: In function 'int main()':
a.cc:17:19: error: 'mod' was not declared in this scope; did you mean 'modf'?
   17 |       dp[i][j] %= mod;}
      |                   ^~~
      |                   modf
Language: C++

#include <iostream>
#include <cstdio>
#include <string>
#include <algorithm>
#include <utility>
#include <cmath>
#include <vector>
#include <queue>
#define rep(i, n) for(int i = 0; i < n; i++)
using namespace std;
typedef long long ll;
ll mod = 1000000007;

int MAX = 200010;
ll factorialTable[MAX];
ll inverseFactorialTable[MAX];

//Aのp乗を求めるアルゴリズム。計算量はO(logp)
ll modpow(ll A, int p) {
    if(p == 0) {
        return 1;
    }
    if(p%2 == 0) {
        //pが偶数の時
        int halfP = p/2;
        ll half = modpow(A, halfP);
        //a^(p/2)をhalfとして、half*halfを計算
        return half * half % mod;
    }
    else {
        //pが奇数の時は、pを偶数にするために1減らす
        return A * modpow(A, p-1) % mod;
    }
}

void makeFactorialTable() {
    ll x = 1LL;
    factorialTable[0] = x;
    for(int i = 1; i < MAX; i++) {
        x *= i;
        x %= mod;
        factorialTable[i] = x;
    }
}

void makeInverseFactorialTable() {
    inverseFactorialTable[0] = 1LL;
    for(int i = 1; i < MAX; i++) {
        inverseFactorialTable[i] = modpow(factorialTable[i], mod-2);
    }
}

ll Comb(int n, int r) {
    ll bunbo = inverseFactorialTable[r]*inverseFactorialTable[n-r]%mod;
    return factorialTable[n]*bunbo%mod;
}

int main() {
    int h, w, a, b;
    ll ans = 0;
    cin >> h >> w >> a >> b;
 
    for(int i = b; i < w; i++) {
        ll k = Comb(h-a-1+i, h-a-1)*Comb(w+a-2-i, w-1-i)%mod;
        ans += k;
        ans %= mod;
    }

    cout << ans << endl;
    return 0;
}

Compiler output:
a.cc:15:19: error: size of array 'factorialTable' is not an integral constant-expression
   15 | ll factorialTable[MAX];
      |                   ^~~
a.cc:16:26: error: size of array 'inverseFactorialTable' is not an integral constant-expression
   16 | ll inverseFactorialTable[MAX];
      |                          ^~~
Language: C

#include <stdio.h>
int x, y, W, H, a, b;
long long dp[100000][100001];
long long dfs(int x, int y){
  if(x > W || y < 1 || (x <= a && y <= B)) return 0;
  if(x == W, y == 1) return 1;
  if(dp[x][y] != 0) return dp[x][y];
  dp[x][y] = dfs(x+1, y) + dfs(x,y+1);
  return dfs(x+1, y) + dfs(x,y+1);
}

int main(void){
  scanf("%d %d %d %d", &H, &W, &a, &b);
  printf("%lld", dfs(1,1) % (1000000000+7));
}

Compiler output:
main.c: In function 'dfs':
main.c:5:40: error: 'B' undeclared (first use in this function)
    5 |   if(x > W || y < 1 || (x <= a && y <= B)) return 0;
      |                                        ^
main.c:5:40: note: each undeclared identifier is reported only once for each function it appears in
Language: C++

#include <iostream>
#include <string.h>
using namespace std;

#define int long long
int N = 2e5+5, MOD = 1e9 + 7;
int h, w, a, b;
int fac[N], invFac[N + 1], inv[N + 1];

void calcInv()
{
    inv[0] = inv[1] = 1;
    for (int i = 2; i <= N; i++)
    {
        inv[i] = inv[MOD % i] * (MOD - MOD / i) % MOD;
    }
}
void calcInvFac()
{
    invFac[0] = invFac[1] = 1;
    for (int i = 2; i <= N; i++)
    {
        invFac[i] = (invFac[i-1] * inv[i])%MOD;
    }
}
void calcFac()
{
    fac[0] = 1;
    for (int i = 1; i <= N; i++)
    {
        fac[i] = (fac[i-1]*i % MOD)%MOD;
    }
}

int nCrMOD(int n, int k)
{
    if (k > n || n <= 0 || k <= 0) return 1;
    return (fac[n] * invFac[k] % MOD * invFac[n-k]) % MOD;
}

signed main()
{
    int ans = 0;
    cin >> h >> w >> a >> b;
    calcInv();
    calcInvFac();
    calcFac();
//    cout << fac[3] << ' ' << invFac[3] << ' ' << invFac[0] << endl;
    for (int i = 1; i <= h-a; i++)
    {
        ans = (ans + (nCrMOD(b+i-2,b-1)*nCrMOD(w-b+h-i-1,w-b-1))%MOD)%MOD;
  //      cout << b+i-2 << ' ' << b-1 << ' ' << nCrMOD(b+i-2,b-1) << ' ' << nCrMOD(w-b+h-i-1,w-b-1) << endl;
    }
    cout << ans;
}


Compiler output:
a.cc:8:9: error: size of array 'fac' is not an integral constant-expression
    8 | int fac[N], invFac[N + 1], inv[N + 1];
      |         ^
a.cc:8:22: error: size of array 'invFac' is not an integral constant-expression
    8 | int fac[N], invFac[N + 1], inv[N + 1];
      |                    ~~^~~
a.cc:8:34: error: size of array 'inv' is not an integral constant-expression
    8 | int fac[N], invFac[N + 1], inv[N + 1];
      |                                ~~^~~
Language: C++

#include "pch.h"
#include <cstdio>

typedef long long ll;
const ll MOD = 1e9 + 7;


ll fac[200001] = { 1 };
ll invfac[200001] = { 1 };

ll qpow(ll b, ll e) {
  ll c = 1;
  while (e) {
    if (e & 1LL)
      c = (c * b) % MOD;
    b = (b * b) % MOD;
    e /= 2LL;
  }
  return c;
}

ll comb(int n, int k) {
  ll tmp = fac[n] * invfac[k] % MOD;
  return tmp * invfac[n - k] % MOD;
}

int main()
{
  int h, w, a, b;
  scanf("%d%d%d%d", &h, &w, &a, &b);
  for (int i = 1; i <= h + w; ++i) {
    fac[i] = (fac[i - 1] * i) % MOD;
    invfac[i] = qpow(fac[i], MOD - 2LL);
  }

  ll ans = 0;
  for (int i = 1; i <= h - a; ++i) {
    ans = (ans + ((comb(i - 1 + b - 1, i - 1) * comb(h + w - b - i - 1, h - i)) % MOD)) % MOD;
  }
  printf("%lld", ans);
}

Compiler output:
a.cc:1:10: fatal error: pch.h: No such file or directory
    1 | #include "pch.h"
      |          ^~~~~~~
compilation terminated.