omingyu   7년 전

비주얼로는 되는데..

#include <iostream>

using namespace std;

int dp[16][16];
int n, m;
int k;
int answer;
int x, y;

int funcA(int x, int y)
{
if (dp[x][y] != 0)
{
return dp[x][y];
}
else
{
dp[x][y] = funcA(x - 1, y) + funcA(x, y - 1);

return dp[x][y];
}
}
int main()
{

cin >> n >> m >> k;

for (int i = 1; i <= n; i++)
{
dp[i][1] = 1;
}

for (int i = 1; i <= m; i++)
{
dp[1][i] = 1;
}

if (k != 0)
{
x = k / m + 1;
y = k % m;

cout << funcA(x, y) * funcA(n - x + 1, m - y + 1) << endl;
}
else
{
x = n;
y = m;
cout << funcA(x, y) << endl;
}

}


chogahui05   7년 전

dp[16][16]으로 가능한가요?

가로 15, 세로 15일 때 불가능 할텐데요.

15 15 0을 넣어보시고 테스트 해 보시겠어요?

omingyu   7년 전

15 15 0 도 되는뎅 ㅠ

chogahui05   7년 전

전수 조사 해 보셨어요?

테케 넣어가 보시면서 해 보세요. 어짜피 테케도 별로 안 됩니다.


15 15 15 넣으시면 seg fault가 뜨는데요.

경계 처리가 잘못된 듯 싶네요.

댓글을 작성하려면 로그인해야 합니다.