코딩테스트/백준

[실4] 15489 - 파스칼의 삼각형

ShovelingLife 2023. 10. 16. 11:56

dp를 활용했다

 

#pragma region 입출력 속도향상

#define FAST_IO() \
{\
	ios::sync_with_stdio(false);\
	cin.tie(NULL); \
	cout.tie(NULL); \
}\

#pragma endregion

#include <iostream>

using namespace std;

#define SIZE 30

int dp[SIZE + 1][SIZE + 1];

int main()
{
	FAST_IO();

	int r, c, w;
	cin >> r >> c >> w;

	dp[1][1] = 1;

	for (int i = 1; i <= SIZE; i++)
	{
		for (int j = 1; j <= i; j++)
		{
			if (j == 1 ||
				i == 1)
				dp[i][j] = 1;

			else
				dp[i][j] = dp[i - 1][j - 1] + dp[i - 1][j];
		}
	}
	int sum = 0;

	for (int i = 0; i < w; i++)
	{
		for (int j = 0; j <= i; j++)
			sum += dp[r + i][c + j];
	}
	cout << sum;
	return 0;
}