Language: C++

/* Author : Aaryan Srivastava ^__^ */ 
#include <bits/stdc++.h>
#include <random>
#include <chrono>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp> 
#define pb push_back
#define mp make_pair
#define ff first
#define ss second   
#define rep(i,n) for(int i = 0 ; i < (n) ; i++)
#define repA(i,x,y) for(int i = (x) ; i <= (y) ; i++)
#define repD(i,x,y) for(int i = (x) ; i >= (y) ; i--)
#define all(c) (c).begin(),(c).end()
#define rall(c) (c).rbegin(),(c).rend()
#define setval(a,val) memset(a,val,sizeof(a))
#define Randomize mt19937 rng(chrono::steady_clock::now().time_since_epoch().count())
#define trav(x , a) for(auto &x : a)
#define sz(a) ((int)a.size())
typedef long long ll ; 

#define int ll

using namespace std;

const int N = 3e5 +5 ;
const int mod = 1e9 + 7 ;
const ll inf = 1e18 ;
const int SZ = 101 ;
const double eps = 1e-9 ;
using namespace __gnu_pbds;
using ordered_set =  tree<int,null_type,less<int>,rb_tree_tag,tree_order_statistics_node_update> ;

typedef pair<int, int> pii; 
typedef pair<int , pii> ipii ;
typedef pair<pii , int> piii ; 
typedef unsigned long long ull ;
typedef long double ld;

ll po(ll x,ll y,ll p = mod) {ll res=1;x%=p;while(y>0){if(y&1)res=(res*x)%p;y=y>>1;x=(x*x)%p;}return res;}

int poA[N] , poB[N] , fac[N] , invfac[N] , ihun[N] , c;

void pre(int A , int B , int C){

    int tmp = po(100LL , mod - 2);
    c =  (100LL * po(100 - C , mod - 2)) % mod ;
    fac[0] = poA[0]  = ihun[0] = poB[0] = 1;

    for(int i = 1 ; i < N ; ++i){
        poA[i] = (poA[i-1] * A) % mod ;
        poB[i] = (poB[i-1] * B) % mod ;
        ihun[i] = (ihun[i - 1] * tmp) % mod;
        fac[i] = (i * fac[i - 1]) % mod;
    }
    invfac[N - 1] = po(fac[N-1] , mod - 2);
    for(int i = N - 2 ; i >= 0 ; --i){
        invfac[i] = (invfac[i + 1] * (i + 1)) % mod ;
    }
}

int ncr(int n , int r){
    if(r > n) return 0; 
    int res = (fac[n] * invfac[r]) % mod ;
    res = (res * invfac[n - r]) % mod ;
    return res;
}


int get_term(int K , int n){
    int res = ncr(K - 1 , n - 1);
    int res2 = ((poA[K-n] * poB[n]) % mod + (poA[n] * poB[K - n])%mod) % mod;
    res = ( res * res2 ) % mod ;
    res = (res * ihun[K]) % mod;
    res = (res * K) % mod ;
    res = (res * c) % mod ;1
    return res;
}

void solve()
{
    int n , A , B , C ;
    cin >> n >> A >> B >> C ;
    int su = (100LL * po(A + B , mod - 2)) % mod;
    A = (su * A) % mod ;
    B = (su * B) % mod ;

    pre(A , B , C);
    int ans = 0;
    for(int K = n ; K <= 2 * n - 1 ; ++K) ans = (ans + get_term(K , n)) % mod ;
    cout << ans;
}   

     
int32_t main(int32_t argc, char *argv[])
{
    ios::sync_with_stdio(0);    
    cin.tie(0); cout.tie(0);
    int TC = 1, t = 0;
    //cin >> TC ;
    while(t++ < TC)
    {
        //cout << "Case #" << t << ": " ;
        solve();
        cout << "\n" ;
    }
    return 0;
}

Compiler output:
a.cc: In function 'll get_term(ll, ll)':
a.cc:76:29: error: expected ';' before 'return'
   76 |     res = (res * c) % mod ;1
      |                             ^
      |                             ;
   77 |     return res;
      |     ~~~~~~                   
a.cc:78:1: warning: no return statement in function returning non-void [-Wreturn-type]
   78 | }
      | ^