for (int i = 2; i <= 18; i++){
        for(int a = 0; a <= 18; a++){
            for(int b = 0; b <= 18; b++){
                dp[i][a][b] += dp[i - 1][a - 1][b - 1] * p * q;
                dp[i][a][b] += dp[i - 1][a][b - 1] * (1 - p) * q;
                dp[i][a][b] += dp[i - 1][a - 1][b] * p * (1 - q);
                dp[i][a][b] += dp[i - 1][a][b] * (1 - p) * (1 - q);
            }
        }
    }


이 코드대로 가면 a = 0일 때 a - 1때문에 음수가 되는데

따로 예외처리를 안해도 답이 나오던데

대충 음수면 무시하기로 컴파일러가 해석한거임?