Language: C++

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

long long extGCD(long long a, long long b, long long &x, long long &y) {
    if (b == 0) {
        x = 1;
        y = 0;
        return a;
    }
    long long d = extGCD(b, a%b, y, x); // 再帰的に解く
    y -= a / b * x;
    return d;
}

// 負の数にも対応した mod (a = -11 とかでも OK) 
inline long long mod(long long a, long long m) {
    return (a % m + m) % m;
}

// 逆元計算 (ここでは a と m が互いに素であることが必要)
long long modinv(long long a, long long m) {
    long long x, y;
    extGCD(a, m, x, y);
    return mod(x, m); // 気持ち的には x % m だが、x が負かもしれないので
}
ll RepeatSquaring(ll N, ll P, ll M){
    if(P==0) return 1;
    if(P%2==0){
        ll t = RepeatSquaring(N, P/2, M);
        return t*t % M;
    }
    return N * RepeatSquaring(N, P-1, M);
}
int main(){
    ll n,a,b;
    cin>>n>>a>>b;
    ll k=n;
    ll mod=1e9+7;
    ll ans=RepeatSquaring(2,k,mod);
    ll nca_a=1,nca_b=1,ncb_a=1,ncb_b=1;
    for(ll i=0; i<a; i++){
        nca_a*=(n-i);
        nca_b*=(i+1LL);
        nca_a%=mod;
        nca_b%=mod;
    }
    for(ll i=0; i<b; i++){
        ncb_a*=(n-i);
        ncb_b*=(i+1LL);
        ncb_a%=mod;
        ncb_b%=mod;
    }
    ll nca=nca_a*modinv(nca_b,mod)%mod,ncb=ncb_a*modinv(ncb_b,mod)%mod;
    //cout<<nca<<" "<<ncb;
    ans-=nca;
    if(ans<0) ans+=mod;
    ans-=ncb;
    if(ans<0) ans+=m#include <bits/stdc++.h>
using ll = long long;
using namespace std;

long long extGCD(long long a, long long b, long long &x, long long &y) {
    if (b == 0) {
        x = 1;
        y = 0;
        return a;
    }
    long long d = extGCD(b, a%b, y, x); // 再帰的に解く
    y -= a / b * x;
    return d;
}

// 負の数にも対応した mod (a = -11 とかでも OK) 
inline long long mod(long long a, long long m) {
    return (a % m + m) % m;
}

// 逆元計算 (ここでは a と m が互いに素であることが必要)
long long modinv(long long a, long long m) {
    long long x, y;
    extGCD(a, m, x, y);
    return mod(x, m); // 気持ち的には x % m だが、x が負かもしれないので
}
ll RepeatSquaring(ll N, ll P, ll M){
    if(P==0) return 1;
    if(P%2==0){
        ll t = RepeatSquaring(N, P/2, M);
        return t*t % M;
    }
    return N * RepeatSquaring(N, P-1, M);
}
int main(){
    ll n,a,b;
    cin>>n>>a>>b;
    ll k=n;
    ll mod=1e9+7;
    ll ans=RepeatSquaring(2,k,mod);
    ll nca_a=1,nca_b=1,ncb_a=1,ncb_b=1;
    for(ll i=0; i<a; i++){
        nca_a*=(n-i);
        nca_b*=(i+1LL);
        nca_a%=mod;
        nca_b%=mod;
    }
    for(ll i=0; i<b; i++){
        ncb_a*=(n-i);
        ncb_b*=(i+1LL);
        ncb_a%=mod;
        ncb_b%=mod;
    }
    ll nca=nca_a*modinv(nca_b,mod)%mod,ncb=ncb_a*modinv(ncb_b,mod)%mod;
    //cout<<nca<<" "<<ncb;
    ans-=nca;
    if(ans<0) ans+=mod;
    ans-=ncb;
    if(ans<0) ans+=mod;
    ans-=1LL;
    if(ans<0) ans+=mod;
    cout<<ans<<endl;
}
od;
    ans-=1LL;
    if(ans<0) ans+=mod;
    cout<<ans<<endl;
}


Compiler output:
a.cc:59:21: error: stray '#' in program
   59 |     if(ans<0) ans+=m#include <bits/stdc++.h>
      |                     ^
a.cc: In function 'int main()':
a.cc:59:20: error: 'm' was not declared in this scope
   59 |     if(ans<0) ans+=m#include <bits/stdc++.h>
      |                    ^
a.cc:63:72: error: a function-definition is not allowed here before '{' token
   63 | long long extGCD(long long a, long long b, long long &x, long long &y) {
      |                                                                        ^
a.cc:75:48: error: a function-definition is not allowed here before '{' token
   75 | inline long long mod(long long a, long long m) {
      |                                                ^
a.cc:80:44: error: a function-definition is not allowed here before '{' token
   80 | long long modinv(long long a, long long m) {
      |                                            ^
a.cc:85:36: error: a function-definition is not allowed here before '{' token
   85 | ll RepeatSquaring(ll N, ll P, ll M){
      |                                    ^
a.cc:93:9: warning: empty parentheses were disambiguated as a function declaration [-Wvexing-parse]
   93 | int main(){
      |         ^~
a.cc:93:9: note: remove parentheses to default-initialize a variable
   93 | int main(){
      |         ^~
      |         --
a.cc:93:9: note: or replace parentheses with braces to value-initialize a variable
a.cc:93:11: error: a function-definition is not allowed here before '{' token
   93 | int main(){
      |           ^
a.cc:122:1: error: 'od' was not declared in this scope; did you mean 'mod'?
  122 | od;
      | ^~
      | mod