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;
}