Submission

Status:

(-SSSSSSSSS)(-SSSS)(P-SSS)(SSSSSSSSSS)

Subtask/Task Score:

{0/20}{0/30}{0/30}{0/20}

Score: 0

User: erng

Problemset: กองไฟ

Language: cpp

Time: 0.002 second

Submitted On: 2026-03-09 22:00:12

#include <bits/stdc++.h>

using namespace std;

#define ll long long

ll n, a, b, c, ans, mod=1e9+7;

void solve(int ca, int cb, int cc, int x)
{
    if (ca>a || cb>b || cc>c) return;
    if (ca+cb+cc==n) ans++, ans=ans%mod;
    if (x==1)
    {
        solve(ca, cb+1, cc, 2);
        solve(ca, cb, cc+1, 3);
    }
    else if (x==2)
    {
        solve(ca+1, cb, cc, 1);
        solve(ca, cb, cc+1, 3);
    }
    else
    {
        solve(ca+1, cb, cc, 1);
        solve(ca, cb+1, cc, 2);
    }
}

int main()
{
    cin.tie(NULL)->sync_with_stdio(false);
    cin>>n>>a>>b>>c;
    solve(1, 0, 0, 1);
    solve(0, 1, 0, 2);
    solve(0, 0, 1, 3);
    cout<<ans;
}