Untitled

 avatar
unknown
plain_text
a year ago
1.3 kB
3
Indexable
#include <iostream>
using namespace std;

int show(int array[10][10], int n)
{
	/*for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < n; j++)
		{
			cout << array[i][j];
		}
		cout << endl;
	}
	cout << endl;*/
	return 0;
}
int fill(int array[10][10], int x, int y, int n)
{
	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < n; j++)
		{
			if (x == i && y == j)
			{
				continue;
			}
			if (x == i || y == j || abs(x - i) == abs(y - j))
			{
				array[i][j]++;
			}
		}
	}
	return 0;
}
int delite(int array[10][10], int x, int y, int n)
{
	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < n; j++)
		{
			if (x == i && y == j)
			{
				array[i][j] = 1;
			}
			if (x == i || y == j || abs(x - i) == abs(y - j))
			{
				array[i][j]--;
			}
		}
	}
	return 0;
}
int funk (int array[10][10],int n,int x,int y,int sum){
	
	for (int i = 0; i < n; i++)
	{
		if (array[x][i]==0)
		{
			if (x==n-1)
			{
				sum = sum + 1;
				
				continue; 
			}
			fill(array, x, i, n);
			show(array, n);
			sum=funk(array, n, x+1, i,sum);
			
			
		}

	}
	if (x==0)
	{
		return sum;
	}
	delite(array, --x, y, n);
	show(array, n);
	return sum;
}
int main()
{
    int arr[10][10]{};
	int sum{ 0 };
    int n;cin >> n;
	cout<<funk(arr, n,0,0,sum)<<endl;
	show(arr, n);
}