Submission
Status:
(xSSSSSSSSS)(xSSSS)(xSSSS)(SSSSSSSSSS)
Subtask/Task Score:
{0/20}{0/30}{0/30}{0/20}
Score: 0
User: Nay-O
Problemset: กองไฟ
Language: cpp
Time: 0.001 second
Submitted On: 2026-04-25 10:50:10
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N = 155, MOD=1e9+7;
int dp[N][N][N][3][3];
int32_t main(){
ios_base::sync_with_stdio(false); cin.tie(NULL);
dp[0][0][1][2][2]=dp[0][1][0][1][1]=dp[1][0][0][0][0]=1;
for(int s = 0; s < N-1; s++){
for(int i = 0; i <= s; i++){
for(int j = 0; j <= s-i; j++){
int k = s-i-j;
for(int a = 0; a < 3; a++){
dp[i+1][j][k][0][a]+=dp[i][j][k][1][a]+dp[i][j][k][2][a];
dp[i+1][j][k][0][a]%=MOD;
dp[i][j+1][k][1][a]+=dp[i][j][k][0][a]+dp[i][j][k][2][a];
dp[i][j+1][k][1][a]%=MOD;
dp[i][j][k+1][2][a]+=dp[i][j][k][1][a]+dp[i][j][k][0][a];
dp[i][j][k+1][2][a]%MOD;
}
}
}
}
int n,a,b,c; cin>>n>>a>>b>>c;
cout << (dp[a][b][c][0][1]+dp[a][b][c][0][2]+dp[a][b][c][1][0]+dp[a][b][c][1][2]+dp[a][b][c][2][0]+dp[a][b][c][2][1])%MOD;
return 0;
}