Untitled
unknown
plain_text
a year ago
1.4 kB
8
Indexable
#include<iostream> using namespace std; int used[7][7], ans, t, mang[7][8], visit[7][8]; void bt(int r, int c) { if (r == 6 && c == 7) { ans++; return; } if (!visit[r][c]) { if (c < 7 && !visit[r][c + 1]) { int num1 = mang[r][c]; int num2 = mang[r][c + 1]; if (!used[num1][num2]) { visit[r][c] = visit[r][c + 1] = 1; used[num1][num2] = used[num2][num1] = 1; if (c < 7) { bt(r, c + 1); } else { bt(r + 1, 0); } visit[r][c] = visit[r][c + 1] = 0; used[num1][num2] = used[num2][num1] = 0; } } if (r < 6 && !visit[r + 1][c]) { int num1 = mang[r][c]; int num2 = mang[r + 1][c]; if (!used[num1][num2]) { visit[r][c] = visit[r + 1][c] = 1; used[num1][num2] = used[num2][num1] = 1; if (r < 6) { bt(r, c + 1); } else { bt(r + 1, 0); } visit[r][c] = visit[r + 1][c] = 0; used[num1][num2] = used[num2][num1] = 0; } } } } void clear() { ans = 0; for (int i = 0; i < 7; i++) { for (int j = 0; j < 8; j++) { visit[i][j] = 0; used[i][j] = 0; } } } int main() { cin >> t; for (int tc = 1; tc <= t; tc++) { for (int i = 0; i < 7; i++) { for (int j = 0; j < 8; j++) { cin >> mang[i][j]; } } clear(); bt(0, 0); cout << "Case #" << tc << endl; cout << ans << endl; } return 0; }
Editor is loading...
Leave a Comment