60分求调
查看原帖
60分求调
646129
NeTZ楼主2024/12/9 14:16

第3和第4个检查点完全过不去

#include<iostream>
using namespace std;
long long board[50][50];
int xb, yb, n, m;
int main() {
	long long total;
	bool flag;
	cin >> xb >> yb >> n >> m;
	for (int i = 0; i <= xb; i++) {
		for (int j = 0; j <= yb; j++) {
			board[i][j] = 0;
		}
	}
	flag = false;
	for (int i = 0; i <= xb; i++) {
		for (int j = 0; j <= yb; j++) {
			
			
			if ((i == n - 1 && j == m - 2) || (i == n - 2 && j == m - 1) || (i == n + 1 && j == m + 2) || (i == n + 2 && j == m + 1) || (i == n + 2 && j == m - 1) || (i == n - 1 && j == m + 2) || (i == n - 2 && j == m + 1) || (i == n + 1 && j == m - 2) || (i == n && j == m)) {
				
				board[i][j] = 0;
				if (i == 0 && j == 0) {
					flag = true;
					
					break;
				}
			}
			else {
				if (i == 0 || j == 0) {
					board[i][j] = 1;
				}
				else {
					board[i][j] = board[i - 1][j] + board[i][j - 1];
				}
			}
			
		}
	}
	
	if (flag) {
		total = 0;
	}
	else {
		total = board[xb][yb];
	}
	cout << total;
	return 0;
}
2024/12/9 14:16
加载中...