?递归?

w  •  1个月前


include <bits/stdc++.h>

using namespace std; int A[1005][1005]; int n, m, p, x, y, k = 0;

void outer() {

cout << endl;
for (int i = 1; i <= n; i++) {
	for (int j = 1; j <= m; j++) {
		cout << A[i][j] << " ";
	}
	cout << endl;
}

}

int s(int a, int b) {

if (k >= n * m)
	return a, b;

if (a == 0) {
	a = n;
}
if (b == 0) {
	b = m;
}
if (a > n) {
	a = 1;
}
if (b > m) {
	b = 1;
}
if (A[a][b] == 0) {
	A[a][b] = k + 1;

}

if (A[a - 1][b + 1] != 0 ) {
	k++;
	if (a - 1 == 0) {
		a = n;
	}
	if (b + 1 == 0) {
		b = m;
	}
	if (a - 1 > n) {
		a = 1;
	}
	if (b + 1 > m) {
		b = 1;
	}
	if (A[a - 1][b + 1] != 0) {
		s(a + 1, b);
	}
} else {
	k++;

	s(a - 1, b + 1);
}


return a, b;

}

int main() {

//freopen("stage.in", "r", stdin);
//freopen("stage.out", "w", stdout);

cin >> n >> m >> p >> x >> y;
s(x, y);
for (int i = 1; i <= p; i++) {
	int q, w;
	cin >> q >> w;
	cout << A[q][w] << endl;
}

}


评论:

请先登录,才能进行评论