Submission

Status:

(PPPPPPPPPP)(PPPPP)(PPPPP)(PPPP-SSSSS)

Subtask/Task Score:

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

Score: 80

User: Nay-O

Problemset: กองไฟ

Language: cpp

Time: 0.133 second

Submitted On: 2026-04-25 10:45:41

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

const int N = 155;
int dp[N][N][N][3][3];

int 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][j+1][k][1][a]+=dp[i][j][k][0][a]+dp[i][j][k][2][a];

                    dp[i][j][k+1][2][a]+=dp[i][j][k][1][a]+dp[i][j][k][0][a];
                }
            }
        }
    }

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

    return 0;
}