Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <string>
- using namespace std;
- const int n = 7;
- string form = "??????????????????????????????????????????????????????????????????????";
- vector<char> res(n * n - 1);
- int ans = 0;
- vector<vector<bool>> used(n + 2);
- void rec(int idx, int r, int c) {
- if (used[r][c]) {
- return;
- }
- if (idx < n * n - 1 && r == n && c == 1) {
- return;
- }
- if (idx == n * n - 1) {
- if (r == n && c == 1) {
- ++ans;
- //for (int i = 0; i < n * n - 1; ++i) {
- // cout << res[i];
- //}
- //cout << endl;
- }
- return;
- }
- used[r][c] = true;
- if (r - 1 > 0) {
- res[idx] = 'U';
- rec(idx + 1, r - 1, c);
- }
- if (r + 1 <= n) {
- res[idx] = 'D';
- rec(idx + 1, r + 1, c);
- }
- if (c - 1 > 0) {
- res[idx] = 'L';
- rec(idx + 1, r, c - 1);
- }
- if (c + 1 <= n) {
- res[idx] = 'R';
- rec(idx + 1, r, c + 1);
- }
- /*if (form[idx] == '?') {
- rec(idx + 1, r - 1, c);
- rec(idx + 1, r + 1, c);
- rec(idx + 1, r, c - 1);
- rec(idx + 1, r, c + 1);
- } else if (form[idx] == 'U') {
- rec(idx + 1, r - 1, c);
- } else if (form[idx] == 'D') {
- rec(idx + 1, r + 1, c);
- } else if (form[idx] == 'L') {
- rec(idx + 1, r, c - 1);
- } else {
- rec(idx + 1, r, c + 1);
- }*/
- used[r][c] = false;
- }
- int main() {
- //cin >> form;
- for (auto& x : used) {
- x.resize(n + 2, false);
- }
- /*for (int i = 0; i < n + 2; ++i) {
- used[i][0] = true;
- used[0][i] = true;
- used[i][n + 1] = true;
- used[n + 1][i] = true;
- }*/
- for (int i = 0; i < n + 2; ++i) {
- for (int j = 0; j < n + 2; ++j) {
- cout << used[i][j];
- }
- cout << endl;
- }
- rec(0, 1, 1);
- cout << ans;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement