코드
#include <iostream>
using namespace std;
int r,c,w,res,a[32][32];
int main() {
cin >> r >> c >> w;
fill(&a[0][0], &a[0][0] + 32*32, 1);
for(int i = 3; i < 31; i++) {
for(int j = 2; j < i; j++) {
a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
}
}
for(int i = 1; i < w + 1; i++) {
for(int j = 0; j < i; j++) {
res += a[r + i - 1][c + j]; // i를 1부터 시작해서 r + i에 -1
}
}
cout << res << '\n';
return 0;
}
파스칼의 삼각형을 만들어서, 입력 받은 부분부터의 합을 구해주었다. 1, 1, 29를 했을 때 536870911이 나오므로, long long을 쓸 필요는 없었다.
'백준' 카테고리의 다른 글
[백준] 13699번 점화식 C++ 코드 (0) | 2024.07.27 |
---|---|
[백준] 9656번 돌 게임 2 C++ 코드 (0) | 2024.07.27 |
[백준] 16395번 파스칼의 삼각형 C++ 코드 (0) | 2024.07.27 |
[백준] 14916번 거스름돈 C++ 코드 (0) | 2024.07.27 |
[백준] 9655번 돌 게임 C++ 코드 (0) | 2024.07.27 |